Some regular expressions are interpreted as case-blind when the "i" flag has not been used. Specifically this applies to single characters (but not ranges) within square brackets. So
matches('m', M') is false
matches('m', '[M-N]') is false
matches('m', '[M]') is true.
Affects schema processing as well as regular expressions in XSLT and XPath. Affects JDK 1.5 only (not JDK 1.4 or .NET)
Patch in Subversion: module JDK15RegexTranslator, line 1242.