in reply to looking for aliases(5)-style entries in a text file

why not match what you _do_ want, rather than not matching what you don't want:
if ($line=~/^\w+:\s+\w+(@\S|)/) { &i_match(); } else { &i_dont_match(); }

this will also handle local forwards since this is acceptable:
username: user2
Update:this _wont_ handle email addresses correctly (i just blindly grab everything after the @ and assume it's correct. To correctly check for valid email addresses, look here.

BlueLines

Disclaimer: This post may contain inaccurate information, be habit forming, cause atomic warfare between peaceful countries, speed up male pattern baldness, interfere with your cable reception, exile you from certain third world countries, ruin your marriage, and generally spoil your day. No batteries included, no strings attached, your mileage may vary.