[a-z] means a to z
x* means 0 or more xs
...
The problem is that
a) whitespace is significant, so long regexes start to become unreadable
b) no easy way to nest regexes
Perl 6/Raku seemed to solve this by making whitespace meaningless by default and allowing regexes to be nested into other regexes or entire "grammars".