in reply to Capture Email address

Your "tightened up" version ( /(abuse\@[\w\.-_]+)\s/) has a couple of problems, and you should read enough of "perlre" man page to understand them.

The character-class (the part between square brackets) is actually defining a range that includes all characters in the ascii set between the period (0x2e) and underscore (0x5f), which would still include backslash, square brackets and angle brackets. I think you intended to do something like this:

/(abuse\@[-.\w]+)/
Note that \w covers alphanumerics and underscore, the dash needs to go first (or last) so that it doesn't create a range, the period does not need to be escaped in a character class definition, and you don't need/want to force a match of a following white-space character at the end of the regex.

In any case, using a module as mentioned in previous replies is likely to be the better way to go.