The MATCHES tests were actually wrong, as "a4b" and "42" would also cause a match when it should not.