id = ('a'..'z')('a'..'z'|'0'..'9'|'_')*;
// A printable character (inside strings)
-ch = ' ' .. '~';
+ch = ' ' ...;
// Literal strings
str = '\'' (ch-'\\'-'\''|'\\'ch)* '\'';
// A single-line comment
comment = '//' ch* '\n'?;
-any = '\t'..'~';
+any = '\t' ...;
not_star = any - '*';
not_star_not_slash = not_star - '/';
{plus:} re3 '+' |
{shortest:} 'Shortest' '(' re ')' |
{longest:} 'Longest' '(' re ')' |
+ {prefixes:} 'Prefixes' '(' re ')' |
{id:} id |
{par:} '(' re ')' |
{class:} text '.' '.' text |