if statements in mirc behave incorrectly. mirc evaluates statements in a serial manner, not respecting the precedence of the && operator against ||, which is what happens in C, Basic and, I would assume, any other language. I always thought it did, until today.
Example:
//if ((1 == 1) || (2 == 3) && (4 == 5)) { echo -s yes } | else { echo -s no }
it echoes "no", as it actually is equivalent to
//if (((1 == 1) || (2 == 3)) && (4 == 5)) { echo -s yes } | else { echo -s no }
instead of the correct
//if ((1 == 1) || ((2 == 3) && (4 == 5))) { echo -s yes } | else { echo -s no }