<ch> ::= ieder typebaar karakter
<digit> ::= ieder cijfer van '0' tot '9'
<digits> ::= <digit> { <digit> }
<digit19> ::= ieder cijfer van '1' tot '9'
<hext> ::= ieder cijfer of letter van 'a' tot 'f' of 'A' tot 'F'
Basis karakter definities :-
<c> ::= '\n' nieuwe regel
| '\t' tab
| '\r' wagen terugloop
| '\b' spatie terug
| '\f' nieuwe bladzijde
| '\e' escape
| '\x' <hex> ( <hex> ) specificeer karakter in hex, ‚‚n of twee hex cijfers
| '\' <ch> ander karakter, iedere speciale betekenis overslaan
| <ch> gewoon karakter
Element tussen haken (iets dat tussen vierkante haken staat) :-
<be> ::= <c> een karakter
| <c> '-' <c> een groep karakters
| '[:alnum:]' alfanumerieke karakters in POSIX
| '[:alpha:]' alfabetische karakters in POSIX
| '[:blank:]' spatie en tab in POSIX
| '[:cntrl:]' controle karakters in POSIX
| '[:digit:]' numerieke karakters in POSIX
| '[:graph:]' afdrukbare en zichtbare karakters (geen spatie) in POSIX
| '[:lower:]' kleine letters in POSIX
| '[:print:]' alfanumerieke karakters in POSIX
| '[:punct:]' leestekens in POSIX
| '[:space:]' witruimte in POSIX
| '[:upper:]' hoofdletters in POSIX
| '[:xdigit:]' hexadecimale cijfers in POSIX
| '[.' ??? '.]' verzamel symbolen in POSIX en
| '[=' ??? '=]' gelijkwaardige classes in POSIX
WORDEN NIET ONDERSTEUND
Uitdrukkingen tussen haken :-
<bx> ::= [ '^' ] { <be> } definieert een aantal aanvaardbare karakters
of een aantal niet te aanvaarden (als '^' aanwezig is)
Uitgebreide Vaste uitdrukkingen :-
<re> ::= lege vaste uitdrukking
| <c> karakter
| '~' <c> niet gespecificeerd karakter
stenografie voor '[^' <c> ']'
| '\w' past op ieder 'woord samenstellend' karakter
stenografie voor '[[:alnum:]_]'
| '\W' past op ieder niet 'woord samenstellend' karakter
stenografie voor '[^[:alnum:]_]'
| '.' past op elk karakter (maar niet einde van een regel)
| '[' <bx> ']' past op karakters tussen haken
| '^' past op een lege reeks aan het begin van een 'regel'
| '$' past op een lege reeks aan het einde van een 'regel'
| '\`' synoniem voor '^'
| '\'' synoniem voor '$'
| '\<' past op een lege reeks aan het begin van een 'woord'
| '\>' past op een lege reeks aan het einde van een 'woord'
| '\B' past op een lege reeks in een 'woord'
| '\y' past op een lege reeks aan het begin of einde van een 'woord'
stenografie voor '(\<|\>)'
opmerking: niet '\b', want dit botst met spatie terug
| <re> <re> 2 <re>'s keten uit een <re>
| '(' <re> ')' een geneste vaste uitdrukking
| '\' <digit19> terugverwijzing naar een geneste vaste uitdrukking
| <re> '?' nul of ‚‚n overeenkomst met <re>
| <re> '+' ‚‚n of meer overeenkomsten met <re>
| <re> '*' nul of meer overeenkomsten met <re>
| <re> '{' <digits> '}' past op M overeenkomsten met <re>
| <re> '{' <digits> ',}' past op z'n minst op M overeenkomsten met <re>
| <re> '{' <digits> ',' <digits> '}'
past op tussen de M en N overeenkomsten met <re>
| <re> '|' <re> past op de ‚‚n <re> of de ander