O padrão ^([^8]*(8([^38]|3[^4])+)*)+$ deve funcionar, graças ao mikeserv, que apontou para mim.
Como usar um posix BRE ou um posix ERE regex para corresponder a uma linha que não contenha 834 em nenhum lugar da string?
Eu quero encontrar grep '!<pattern>' file , que será igual a grep -v '<pattern>' file .
É uma questão teórica sobre regex, é por isso que não quero usar -v flag.
Eu descobri como listar linhas, que não contêm um caractere: ^[^8]*$ , no meu caso eu também tentei ^$|^.$|^..$|^([^8]..|.[^3].|..[^4])*$ , mas isso não está funcionando como esperado.
Tags grep regular-expression