digits [0-9] ltr [a-zA-Z] alphanum [a-zA-Z0-9] %% (-|\+)*{digits}+ printf("found number: '%s'\n",yytext); {ltr}(_|{alphanum})* printf("found identifier: '%s'\n",yytext); \. printf("found character: {%s}\n",yytext); . { /* ignore others */ } %% int main(int argc, char **argv) { yylex(); }