Com expressões regulares no sentido matemático, é possível, mas o tamanho das expressões regulares cresce exponencialmente em relação ao tamanho do alfabeto, por isso não é prático.
Há uma maneira simples com negação e referências anteriores .
grep '[spine]' | grep -Ev '([spine]).*'
O primeiro grep seleciona linhas que contenham pelo menos um einps ; o segundo grep rejeita as linhas que contêm mais de uma (por exemplo, permitindo spinal tap e spend , mas não foobar ou see ).