<ch> ::= n†got skrivbart tecken
<digit> ::= n†gon siffra fr†n '0' till '9'
<digits> ::= <siffra> { <siffra> }
<digit19> ::= n†gon siffra fr†n '1' till '9'
<hext> ::= n†gon siffra eller bokstav fr†n 'a' till 'f' eller 'A' till 'F'
Grundl„ggande tecken definitioner :-
<c> ::= '\n' ny rad
| '\t' tab
| '\r' vagnretur
| '\b' backspace
| '\f' formfeed
| '\e' escape
| '\x' <hex> ( <hex> ) specificera tecken i hex, en eller tv† hex siffror
| '\' <ch> annat tecken, utan specell betydelse
| <ch> normalt tecken
Parentes element (n†got som finns inom ett parentes uttryck) :-
<be> ::= <c> ett tecken
| <c> '-' <c> ett omf†ng av tecken
| '[:alnum:]' POSIX alfanumeriska tecken
| '[:alpha:]' POSIX alfabetiska tecken
| '[:blank:]' POSIX space och tab tecken
| '[:cntrl:]' POSIX kontroll tecken
| '[:digit:]' POSIX numeriska tecken
| '[:graph:]' POSIX utskrivbara och synliga (icke-mellanslags) tecken
| '[:lower:]' POSIX gemener (sm† bokst„ver)
| '[:print:]' POSIX alfanumeriska tecken
| '[:punct:]' POSIX punktations tecken
| '[:space:]' POSIX mellanslags tecken
| '[:upper:]' POSIX versaler (stora bokst„ver)
| '[:xdigit:]' POSIX hexadecimala siffror
| '[.' ??? '.]' POSIX indirekta symboler och
| '[=' ??? '=]' POSIX ekvivalenta klasser
ST™DS INTE
Parentes uttryck :-
<bx> ::= [ '^' ] { <be> } definierar ett upps„ttning acceptabla tecken
eller en upps„ttning av icke-acceptabla (om '^' finns)
Ut”kade Regulj„ra Uttryck :-
<re> ::= tom regulj„rt uttryck
| <c> tecken
| '~' <c> icke specificerat tecken
kort f”r '[^' <c> ']'
| '\w' matchar n†got 'ord integrerande' tecken
kort f”r '[[:alnum:]_]'
| '\W' matchar n†got icke 'ord integrerande' tecken
kort f”r '[^[:alnum:]_]'
| '.' matchar n†got tecken (men inte radslut)
| '[' <bx> ']' matchar tecken inom hakparentes uttryck
| '^' matchar tom str„ng vid starten av 'raden'
| '$' matchar tom str„ng i slutet av 'raden'
| '\`' synonym f”r '^'
| '\'' synonym f”r '$'
| '\<' matchar tom str„ng vid starten av ett 'ord'
| '\>' matchar tom str„ng vid slutet av ett 'ord'
| '\B' matchar tom str„ng inom ett 'ord'
| '\y' matchar tom str„ng vid starten eller slutet av ett 'ord'
kort f”r '(\<|\>)'
notera: ej '\b', eftersom detta kolliderar med backspace
| <re> <re> 2 <re>'s konkatinerad (sammanslagen)form av <re>
| '(' <re> ')' n„stlat regulj„rt uttryck
| '\' <digit19> bakreferens till n„stlat regulj„rt uttryck
| <re> '?' ingen eller en f”rekomst av <re>
| <re> '+' en eller flera f”rekomster av <re>
| <re> '*' ingen eller flera f”rekomster av <re>
| <re> '{' <digits> '}' matchar M f”rekomster av <re>
| <re> '{' <digits> ',}' matchar †tminstone M f”rkomster av <re>
| <re> '{' <digits> ',' <siffra> '}'
matchar mellan M och N f”rekomster av <re>
| <re> '|' <re> matchar en <re> eller de andra