Creo que esta solucionado el bug del caracter.

Lo que hice fue cambiar la expresión regular para reconocer caracteres y utilizar la misma del string cambiando simplemente las `"` por `'` y en vez de tener estrella de kleene le puse el `?`.
Creo que esto lo soluciona. Al menos el caso reportado como que no funcionaba (Caracter '-') funciona de esta manera.