there are a number of peculiar discrepancies between these types of operations in mIRC. unfortunately the identity suggested by drum doesn't hold true for over half of the range of characters supported by
$chr()! here are a few examples of pairs of seemingly identical checks along with the number of characters for which they have different results:
if ($chr(N) isupper)
if ($chr(N) === $upper($chr(N)))
45,825 chars,
$chr(223) is the first.
if ($chr(N) islower)
if ($chr(N) === $lower($chr(N)))
45,603 chars,
$chr(304) is the first.
these results are mostly accounted for by the 45,533 characters which are neither upper nor lower (according to
islower and
isupper), the first example being
$chr(443).
if ($chr(N) isalnum)
if ($chr(N) isalpha) || ($chr(N) isnum)
303 characters,
$chr(178) is the first.
on the plus side: the following are, rather unremarkably, pairs of equivalent checks:
if ($chr(N) isupper)
if ($isupper($chr(N)))
if ($chr(N) islower)
if ($islower($chr(N)))
if ($chr(N) isalpha)
if ($chr(N) isletter)