$re = '/(^|(?<=\s))(([A-Za-z\d]+)([_\.\-])?([A-Za-z\d]+))@([a-z]+([\.\-_][a-z]+)+)($|)/m';
$str = 'Many users @ SoftUni confuse email addresses. We @ Softuni.BG provide high-quality training @ home or @ class. -- steve.parker@softuni.de.
Just send email to s.miller@mit.edu and j.hopking@york.ac.uk for more information.
Please contact us at: support@github.com.';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php