I found a very strange problem. The string ".-@" in a regexp differs
from the string "-.@".
As documented. From perlre:
Within a list,
the "-" character is used to specify a range, so that a-z
represents all characters between "a" and "z", inclusive.
If you want "-" itself to be a member of a class, put it at
the start or end of the list, or escape it with a backslash.