[:alnum:] is defined as Alphanumeric characters: ‘[:alpha:]’ *and* ‘[:digit:]’; in the ‘C’ locale and ASCII character encoding, this is the same as ‘[0-9A-Za-z]’. AND = need to satisfy *BOTH* alpha and digit OR = need to satisfy *EITHER* alpha or digit It looks like ‘[:alpha:]’ *AND* ‘[:digit:]’ functions as ‘[:alpha:]’ *OR* ‘ [:digit:]’, See example Example: # cat /tmp/c adc x1y1z123 456 # grep [[:alpha:]] /tmp/c adc x1y1z123 # grep [[:digit:]] /tmp/c x1y1z123 456 # grep [[:alnum:]] /tmp/c adc x1y1z123 456 ### if [:alnum] functions as ‘[:alpha:]’ *AND* ‘[:digit:]’, it should show x1y1z123 only