the bug was that isupper was abstracting over unicode uppercase