En antlr4 lexer, ¿Cómo tener una regla que atrape todas las "palabras" restantes como token desconocido?

Tengo una gramática lexer antlr4. Tiene muchas reglas para las palabras, pero también quiero que cree un token desconocido para cualquier palabra que no pueda coincidir con otras reglas. Tengo algo como esto:

Whitespace : [ \t\n\r]+ -> skip;
Punctuation : [.,:;?!];
// Other rules here
Unknown : .+? ; 

Ahora el matcher generado captura '~' como desconocido pero crea 3 '~' tokens desconocidos para la entrada '~~~' en lugar de un solo token '~~~'. ¿Qué debo hacer para decirle a Lexer que genere tokens de palabras para caracteres consecutivos desconocidos? También probé "Unknown:.;" y "Desconocido:. +;" sin resultados

EDITAR: En las versiones actuales de antlr. +? Ahora atrapa las palabras restantes, por lo que este problema parece estar resuelto.

Respuestas a la pregunta(1)

Su respuesta a la pregunta