%option nounput noinput %{ void echo(char *lex_cat) { fprintf(stdout,"[%s:%s]", lex_cat, yytext); } %} SET [abcdefABCDEF] /* IPv6 Addr */ SET_EXT {SET}|[oOiIzZsSgG] /* leet speak , hexspeak, calculator spelling*/ %% ^{SET}{4}\n echo("4-STRIC"); ^{SET_EXT}{4}\n echo("4-Approx"); ^{SET}*\n echo("*-STRIC"); ^{SET_EXT}*\n echo("*-Approx"); .|\n ; %% int yywrap(void) { return 1; } int main(int argc, char *argv[]) { while (yylex()!=0) ; return 0; }