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 isalnum returns true (see ctype.h).
[:alpha:]Characters for which isalpha returns true (see ctype.h).
[:cntrl:]Characters for which iscntrl returns
true (see ctype.h).
[:digit:]Characters for which isdigit returns true (see ctype.h).
[:graph:]Characters for which isgraph returns true (see ctype.h).
[:lower:]Characters for which islower returns true (see ctype.h).
[:print:]Characters for which isprint returns true (see ctype.h).
[:punct:]Characters for which ispunct returns true (see ctype.h).
[:space:]Characters for which isspace returns true (see ctype.h).
[:upper:]Characters for which isupper returns true (see ctype.h).
[:xdigit:]Characters for which isxdigit returns true (see ctype.h).