`!` should only be defined if the user ops-in via the config option we discussed.

Also, if the user double-negates I would like this to return the original matcher rather than wrapping it in another layer.