Consider replacing [a-z] with \p{Ll}
That way, lower case unicode characters can be matched as well. You never know when a random "é" or "á" will bite you in the butt (and not just in the above regex).
[a-zA-Z] becomes \p{L}
[a-z] becomes \p{Ll}
[A-Z] becomes \p{Lu}