Well then this further proves my point of "mIRC needs a new parsing engine." In the sense of expression parsing, I am using it in front of an identifier, in front of the identifier $true or the identifier $false, because that is what the subexpression of a boolean operation should evaluate to. You may see a subexpression being negated as being different than putting it directly in front of an identifier, but programatically and mathematically it is equivilent. Like I said, it can be done in a different way, but let me ask, how many people here are familiar with De Morgan's Laws of logical equivilence? That is,
!(a && b) == (!a || !b)
!(a || b) == (!a && !b)
I'm sure the majority of scripters have never heard of these laws. It makes it harder to code things when you know you want !(a && b) and you have to think, what other way can I write this without using a not operation on a subexpression? It can be especially difficult if you are unfamiliar with the formulas that allow you to do it. Imho, regardless of whether it is a "bug" it is still a flaw.