isidentifier paranoia: don't assume id_char ⊆ id_start_char