Uma expressão regular estendida começando com *
produzirá um resultado indefinido , de acordo com o padrão POSIX .
Isto é com grep
no OpenBSD 6.4:
$ grep -E '*hello'
grep: repetition-operator operand invalid
O GNU grep
parece ignorar totalmente o *
:
$ printf 'hello\n' | ggrep -E '*hello'
hello
De acordo com o mesmo padrão , se você usar expressões regulares básicas ( grep
sem -E
), um *
no início de uma expressão ou subexpressão dentro de \(...\)
(ou logo após um ^
inicial) deve ser interpretado como um literal *
.