Recentemente, entrei em uma discussão amigável com Ghoti sobre o que constitui uma expressão regular nos comentários da minha resposta a esta pergunta. Afirmei que o seguinte é uma expressão regular:
`[Rr]eading[Tt]est[Dd]ata`
Ghoti discordou, alegando que é um arquivo global. A página da glob na wikipedia afirma que (ênfase minha):
Os globos não incluem sintaxe para a estrela Kleene, que permite várias repetições da parte anterior da expressão; portanto, elas não são consideradas expressões regulares, que podem descrever um conjunto maior de idiomas regulares sobre qualquer alfabeto finito.
No entanto, não há citação para essa alegação, indicando que é apenas a opinião de um editor da wikipedia específico.
A especificação The Single UNIX ®, versão 2 , afirma que uma expressão regular básica (BRE) pode até ser um único caractere:
Um caractere comum é um BRE que corresponde a si mesmo: qualquer caractere no conjunto de caracteres suportado, exceto os caracteres especiais BRE listados em Caracteres Especiais BRE.
Então, qual é a definição de uma expressão regular no mundo * nix, e essa definição exclui as falhas de arquivo?
*
tem dois significados diferentes em BRE e globs. Nota: Eu não acho que o termo glob seja usado em qualquer lugar da especificação POSIX - ele se chama Pattern Matching e é descrito no capítulo da linguagem shell.
grep
,sed
, eawk
. O Vim usa sua própria variedade, assim como o Perl.