Problem with ledger query syntax not operator

The following will print all transactions with the tag 'TAX'

ledger print %tax

However,

ledger print not %tax

will not print all transactions which do not have the tag 'TAX'. In fact this will match every transaction.

Am i missing something or is this just a bug?