This won't match, of course.
- in a regex (plain old, or perl-style) doesn't match any sequence of characters as it does for filename wildcards on most systems. Instead, it's the "closure" operator, matching zero-or-more repetitions of the preceding character. The period/dot means "match any character", so to match your pattern the regex would need to be:
$match = "me!ident@a49230432.aol.com";
$regex = ".!.@.*\.aol\.com";
(Note, too that because '.' is special you have to escape it if you want it to match literally, and that if your regex is written between double-quotes, which do their own backslash-interpretation, you have to double the backslashes--or is it quadruple? I always forget.)
Now, if you want to prevent empty sections (possible with the above since means zero-or-more) just replace the with + which means one-or-more:
$regex = ".+!.+@.+\.aol\.com";
Now this will match your string, but prevent degenerate cases like
!@.aol.com
from also matching.