Hmm, you need to show your work.
[tag[apples]-tag[pie]]
gives the empty set for me, which is what I would expect. The hyphen only works BETWEEN filter runs.
Inside of a filter run, I would expect that TW would interpret "-tag" as it's own (non-existent) field with a (non-existent) value of "pie". That would give the empty set.