Your regular expression almost works, you just forgot to escape the period. Also, in PHP you need delimiters:
'/@(.*?)\./s'
The s is the DOTALL modifier.
Here’s a complete example of how you could use it in PHP:
$s="[email protected]";
$matches = array();
$t = preg_match('/@(.*?)\./s', $s, $matches);
print_r($matches[1]);
Output:
bar