Definizioni fondamentali :-
  <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