$regex = '#\w+\s(at)\s\w+.\w{2,4}#'; is the fix.
If you've gotten a site into a string with file_get_contents, then the tags will obscure your results. For example <p>blah (at) blah.com will not turn up results because the ^ will see '<' as the start of a result, I think... Maybe you can try stripping the tags and then using word boundaries to do that... get a second opinion on that though. I tried the above regex statement with some info that I thought you'd be trying to match data from, and it seemed to work.
<?php
$url = 'the url of the site your scraping';
$data = file_get_contents($url);
$regex = '#\w+\s(at)\s\w+.\w{2,4}#';
preg_match_all($regex, $data, $match);
print_r($match); //just for testing
?>