This is the regex-style character matching syntax; from the Bash Reference Guide , Β§3.5.8.1 (pattern matching) :
[...] Matches any of the enclosed characters. A pair of characters separated by a hyphen denotes a range expression; any character that sorts between the two characters inclusive, using the current locale matching sequence and character set, is mapped. If the first character following β[βis is β!βor β^β, then any character is not attached. A βββcan be matched by including it as the first or last character in the set. A β]βcan be matched by including it as the first character in the set. The sort order of characters in range expressions is determined by the current locale and the value of the shell variable LC_COLLATE, if one is set.
, C β[a-dx-z]β '[abcdxyz]. , β[a-dx-z]β β[abcdxyz]β; , , β[aBbCcDdxXyYz]β. , C, LC_COLLATE LC_ALL βCβ.
β[β β]β [:class:], class , posix:
alnum alpha ascii blank cntrl digit graph lower
print punct space upper word xdigit
, . , β_β.
β[β β]β [=c=], ( ) c.
β[β β]β [.symbol.] .
( )