@cronos,
[a-zA-Z] no es lo mismo que [A-z]. ¿por que? porque en el codepoint, entre "Z" y "a" existen caracteres intermedios. en la siguiente secuencia del codepoint 33 al 255, fijate el area roja.
Código:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬*®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
y a la clase word, [a-zA-Z0-9], le falta el underscore (_).