Regexes are very readable, so long as you know what the symbols mean
/[a-z0-9]+/ means "match one or more characters in the range a-z or 0-9"
/[a-z0-9]+/ means "match one or more characters in the range a-z or 0-9"
The real problem with regexes is that in many languages, they can't have whitespace or comments, so documenting them is a problem.