Isso não tem nada a ver com as próprias páginas man: é uma descrição da sintaxe dos padrões globais, sobre os quais a página do manual está.
Em um padrão glob, os colchetes delimitam um conjunto de caracteres. Por exemplo, [abc]
corresponde a qualquer um dos caracteres a
, b
ou c
. O padrão fo[abc]
corresponde a foa
, fob
e foc
(mas não, por exemplo, foo
ou fo
ou foab
).
Dentro dos parênteses, o caractere -
tem um significado especial: é usado para formar um intervalo de caracteres. Portanto, em vez de corresponder a 0
, -
ou 9
, o padrão [0-9]
corresponde a qualquer dígito. Os intervalos podem ser combinados com outros intervalos e caracteres solitários; por exemplo, [A-Za-z_]
na codificação ASCII corresponde a qualquer letra ou sublinhado.
O sinal de menos é interpretado apenas como um indicador de intervalo quando isso seria sintaticamente sensato: se for o primeiro ou último caractere dentro dos colchetes, ou se vier imediatamente após outro intervalo, -
significa ele mesmo. Portanto, em [--0]
, o primeiro -
significa ele mesmo e o segundo -
é um indicador de intervalo, portanto, esse padrão corresponde a qualquer caractere que esteja entre -
e 0
na localidade atual.
Na codificação ASCII , esse intervalo abrange os quatro caracteres a seguir: -
, .
, /
, 0
. O caractere /
não pode aparecer dentro de um nome de arquivo, porque é sempre interpretado como um separador de diretório; portanto, o padrão [--0]
corresponde apenas aos 3 caracteres -
, .
e 0
.
Observe que em locais diferentes de ASCII, o padrão pode corresponder a um conjunto diferente de caracteres. O efeito da configuração de localidade nos intervalos de caracteres é um pouco variável entre sistemas e aplicações.
A maioria dos mecanismos de expressões regulares usa a mesma sintaxe para intervalos de caracteres como padrões de globos de shell, com duas diferenças:
- Em um padrão glob, se o primeiro caractere após o colchete de abertura for um
!
, o padrão corresponderá a todos os caracteres não no conjunto. Em uma expressão regular, o caractere ^
desempenha o mesmo papel. Alguns shells suportam ^
, bem como !
.
- Algumas variantes de expressões regulares permitem que
\
faça o próximo caractere perder seu significado especial, por exemplo, [\[\]\-a]
corresponde a [
, ]
, -
ou a
. Em outras variantes de expressão regular e em padrões glob, uma barra invertida nos conjuntos de caracteres não tem significado especial. Se ]
estiver no conjunto, ele deve vir primeiro (é impossível especificar um conjunto vazio: []
é um padrão incompleto, correspondendo a um colchete de fechamento ou a qualquer caractere que venha depois).