SSH, The Secure Shell: The Definitive Guide, 2nd Edition
by Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes
Character Sets for Egrep and ZSH_FILEGLOB
A character set starts with [ and ends at non-escaped ] that is not part of a POSIX character set
specifier and that does not follow immediately after [.
The following characters have a special meaning and need to be escaped if meant literally:
-(minus sign)A range operator, except immediately after
[where it loses its special meaning.^or!(latter applies to ZSH_FILEGLOB)If immediately after the starting
[, denotes a complement: the whole character set will be complemented. Otherwise, literal.[:alnum:]Characters for which
isalnumreturnstrue(see ctype.h).[:alpha:]Characters for which
isalphareturnstrue(see ctype.h).[:cntrl:]Characters for which
iscntrlreturnstrue(see ctype.h).[:digit:]Characters for which
isdigitreturnstrue(see ctype.h).[:graph:]Characters for which
isgraphreturnstrue(see ctype.h).[:lower:]Characters for which
islowerreturnstrue(see ctype.h).[:print:]Characters for which
isprintreturnstrue(see ctype.h).[:punct:]Characters for which
ispunctreturnstrue(see ctype.h).[:space:]Characters for which
isspacereturnstrue(see ctype.h).[:upper:]Characters for which
isupperreturnstrue(see ctype.h).[:xdigit:]Characters for which
isxdigitreturnstrue(see ctype.h).
Example
[[:xdigit:]XY]
is typically equivalent to:
[0123456789ABCDEFabcdefXY] .
It is also possible to include the predefined escaped character sets into a newly defined one, so:
[\d\s]
matches digits and whitespace characters.