メールアドレスぶっこ抜きのもっと強欲パターン

お前の予定!では、メールのヘッダーや本文からメールアドレスを抽出する必要があります。複数のメールアドレスも簡単に抜き出せる正規表現を紹介します。
ちなみにこのパターンはグーグル先生のご紹介によるものです。大崎さんありがとうございます。

Mail::mimeDecodeのラッパを作った時に使用した正規表現です。

<?php
    /**
     * STATIC
     * 文字列の中からemailアドレスっぽいものだけを抽出して返します。
     * emailアドレスっぽいものの正規表現をあらためた
     * see. http://red.ribbon.to/~php/memo_003.php
     * 
     * @access public
     * @param  string $raw_string
     * @return string $mail_addresses メールアドレスっぽいものを複数あれば,(カンマ)区切りで
     */
    function extractionEmails( $raw_string ) {
	
	/*
	 * emailアドレスっぽい正規表現
	 * see. http://red.ribbon.to/~php/memo_003.php
	 */
	$email_regex_pattern = '/(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*\])(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*\]))*/';
	
	
	if ( preg_match_all( $email_regex_pattern, $raw_string, $matches, PREG_PATTERN_ORDER ) ) {
	    if ( isset($matches[0]) ) {
		return implode( ",", $matches[0] );
	    }
	}
	
	return null;
    }
?>