Para elaborar a resposta MiJyns, "caracteres especiais" como + funcionam na regex padrão também, mas você precisa escapar deles com uma barra invertida. Você pode dizer que as expectativas padrão são invertidas entre a regex padrão e estendida:
Na regex padrão, os caracteres correspondem literalmente por padrão. Por exemplo, em grep "ab+"
, o + é um literal +. O regex, por exemplo, encontraria "ab + ab", mas não "abbbb". Para usar o "significado especial" de +, você precisa escapar. Então, grep "ab\+"
encontraria "abbb", mas não "ab + ab" por mais tempo. Porque no último exemplo, o + é interpretado como o quantificador "um ou muitos dos que", nesse caso "um ou muitos b".
Em regex estendido, é exatamente o contrário. Aqui, você precisa escapar de "caracteres especiais" para serem tratados literalmente. Então, grep -E "ab+"
encontra "abbb", mas não "ab + ab". Se você escapar do +, ele é correspondido literalmente. Então, grep -E "ab\+"
encontra "ab + ab", mas não "abbb".