And don't forget that some nice character classes are predefined for you. Your example only has lower case a-z, but if that is an oversight then consider using '\w' to represent a 'word' character (defined as alphanumeric and '_').
The general rule is that uppercasing the 'special' character class negates it. So \W is any 'non-word' character.
Again, as pointed out above 'perlre' is a mine of information.