Next: , Previous: , Up: List Operators ([] and [^])   [Contents][Index]


18.3.6.3 Character Class Operators ([::])

If the syntax bit RE_CHAR_CLASSES is set, then Regex recognizes character class expressions inside lists. A character class expression matches one character from a given class. You form a character class expression by putting a character class name between an open-character-class operator (represented by ‘[:’) and a close-character-class operator (represented by ‘:]’). The character class names and their meanings are:

alnum

letters and digits

alpha

letters

blank

system-dependent; for GNU, a space or tab

cntrl

control characters (in the ASCII encoding, code 0177 and codes less than 040)

digit

digits

graph

same as print except omits space

lower

lowercase letters

print

printable characters (in the ASCII encoding, space tilde—codes 040 through 0176)

punct

neither control nor alphanumeric characters

space

space, carriage return, newline, vertical tab, and form feed

upper

uppercase letters

xdigit

hexadecimal digits: 09, af, AF

These correspond to the definitions in the C library’s <ctype.h> facility. For example, ‘[:alpha:]’ corresponds to the standard facility isalpha. Regex recognizes character class expressions only inside of lists; so ‘[[:alpha:]]’ matches any letter, but ‘[:alpha:]’ outside of a bracket expression and not followed by a repetition operator matches just itself.