Você deve distinguir entre shell escaping e grep
escapes.
Expressões regulares básicas (BRE; que são usadas se grep
for usado sem a opção -E
) tratam (
, )
e |
como caracteres normais. As sequências \(
e \|
têm um significado especial.
Sem as aspas, o shell trata a barra invertida como caractere de escape e a remove, por exemplo, grep
não a vê. Com aspas grep
vê as barras invertidas, então o significado de (
e |
muda.
Com expressões regulares estendidas ( grep -E
), ocorre o contrário: (
e |
são especiais e você precisa de um bashslash antes deles para que eles sejam manipulados como caracteres normais.