Keep in mind that "isupper $1-" is really just doing $upper($1-) == $1-, so the behaviour will still be the same. Again, this is also intentional; and there's actually
a lengthy discussion on this in another bug report/feature suggestion. A non-alpha character does not define an "upper" or "lower" property and is therefore ignored in these checks. Any other behaviour would be inconsistent and would not be idempotent ($upper($lower($1-)) should == $upper($1-)).