Prendi, ad esempio, questo comando:
find . -regex ".*\.\(cpp\|h\)"
Questo troverà tutti i file .h e .cpp nella tua directory. Il carattere punto "." nelle espressioni regolari di solito significa "qualsiasi carattere". Per farlo corrispondere solo a un periodo effettivo, è necessario evitarlo utilizzando il carattere barra rovesciata '\'.
In questo caso, dato un personaggio con un significato speciale, devi scappare per ottenere il personaggio reale che rappresenta.
Ora prendi la parentesi e la barra "o", rispettivamente i caratteri '(', ')' e '|'. Questi hanno anche significati speciali, usati per raggruppare espressioni regolari. Tuttavia, per ottenere il significato speciale, i personaggi devono essere sfuggiti usando la barra rovesciata! Senza la barra rovesciata, i personaggi hanno il significato del personaggio reale che rappresenta.
Perché è il '.' trattato in modo diverso da '(', ')' e '|'?