<ch> ::= qualsiasi carattere scrivibile
<digit> ::= qualsiasi cifra da '0' a '9'
<digits> ::= <digit> { <digit> }
<digit19> ::= qualsiasi cifra da '1' a '9'
<hext> ::= qualsiasi cifra o lettera tra 'a' ed 'f' o tra 'A' ed 'F'
Definizioni base dei caratteri :-
<c> ::= '\n' nuova linea
| '\t' tabulazione
| '\r' ritorno carrello
| '\b' backspace
| '\f' nuova pagina
| '\e' escape
| '\x' <hex> ( <hex> ) specifica di carattere in esadecimale, una o due cifre esadecimali
| '\' <ch> altri caratteri, escape di ogni significato speciale
| <ch> carattere normale
Elementi in parentesi (qualcosa che va in un'espressione in parentesi) :-
<be> ::= <c> un carattere
| <c> '-' <c> una gamma di caratteri
| '[:alnum:]' caratteri alfanumerici POSIX
| '[:alpha:]' caratteri alfabetici POSIX
| '[:blank:]' caratteri di spazio e tabulazione POSIX
| '[:cntrl:]' caratteri di controllo POSIX
| '[:digit:]' caratteri numerici POSIX
| '[:graph:]' caratteri stampabili e visibili (non-spazio) POSIX
| '[:lower:]' caratteri minuscoli POSIX
| '[:print:]' caratteri alfanumerici POSIX
| '[:punct:]' caratteri di punteggiatura POSIX
| '[:space:]' caratteri di spazio vuoto POSIX
| '[:upper:]' caratteri maiuscoli POSIX
| '[:xdigit:]' cifre esadecimali POSIX
| '[.' ??? '.]' caratteri di confronto POSIX
| '[=' ??? '=]' classi di equivalenza POSIX
NON SONO SUPPORTATI
Espressioni in parentesi :-
<bx> ::= [ '^' ] { <be> } definisce un insieme di caratteri accettabili
o un insieme di caratteri non accettabili (se Š presente '^')
Espressioni regolari estese :-
<re> ::= espressione regolare vuota
| <c> carattere
| '~' <c> carattere non specificato
scorciatoia per '[^' <c> ']'
| '\w' corrisponde a ogni carattere 'costitutivo di parola'
scorciatoia per '[[:alnum:]_]'
| '\W' corrisponde a ogni carattere non 'costitutivo di parola'
scorciatoia per '[^[:alnum:]_]'
| '.' corrisponde a ogni carattere (ma non fine linea)
| '[' <bx> ']' corrisponde ai caratteri nell'espressione in parentesi
| '^' corrisponde alla stringa vuota all'inizio della 'linea'
| '$' corrisponde alla stringa vuota alla fine della 'linea'
| '\`' sinonimo di '^'
| '\'' sinonimo di '$'
| '\<' corrisponde alla stringa vuota all'inizio di una 'parola'
| '\>' corrisponde alla stringa vuota alla fine di una 'parola'
| '\B' corrisponde alla stringa vuota all'interno di una 'parola'
| '\y' corrisponde alla stringa vuota all'inizio o alla fine di una 'parola'
scorciatoia per '(\<|\>)'
nota: non '\b', che si confonde con il backspace
| <re> <re> 2 <re> concatenate formano una <re>
| '(' <re> ')' espressione regolare annidata
| '\' <digit19> retro-riferimento a una espressione regolare annidata
| <re> '?' zero o una occorrenza di <re>
| <re> '+' una o pi— occorrenze di <re>
| <re> '*' zero o pi— occorrenze di <re>
| <re> '{' <digits> '}' corrisponde a M occorrenze di <re>
| <re> '{' <digits> ',}' corrisponde ad almeno M occorrenze di <re>
| <re> '{' <digits> ',' <digits> '}'
corrisponde a un numero tra M ed N occorrenze di <re>
| <re> '|' <re> corrisponde a una <re> o all'altra