Я бы так сказал. Похоже, вы наткнулись на сканер Flex в примере 1.3 Flex & Bison (стр. 5):
/* recognize tokens for the calculator and print them out */
%%
"+" { printf("PLUS\n"); }
"-" { printf("MINUS\n"); }
"*" { printf("TIMES\n"); }
"/" { printf("DIVIDE\n"); }
"|" { printf("ABS\n"); }
[0-9]+ { printf("NUMBER %s\n", yytext); }
\n { printf("NEWLINE\n"); }
[ \t] { }
. { printf("Mystery character %s\n", yytext); }
%%
Как вы уже видели, NUMBER, пробел и загадочный символ определяются с помощью простых регулярных выражений (ну, другие тоже, но они не очень интересны). Ваш язык программирования, несомненно, будет использовать другие регулярные выражения (например, подумайте о токенах для шестнадцатеричных литералов, восьмеричных литералов, чисел с плавающей запятой / double и комментариев в C / C ++ / Java). Они также являются полезной техникой для программирования в целом, поэтому я бы хотел узнать кое-что о них сейчас.