$re = '@m=audio.*\r?\n(?!(?:^a=.*\r?\n)*^a=rtpmap:0 pcmu/8000)(?:^a=.*\r?\n)*^a=rtpmap:18 g729/8000\r?\n(?:^a=.*\r?\n)*@m';
$str = 'm=audio 16468 RTP/AVP 0 8 9 18 120 102 104 103 101
a=rtpmap:8 pcma/8000
a=rtpmap:9 g722/8000
a=rtpmap:18 g729/8000
a=fmtp:18 annexb=yes
a=rtpmap:120 opus/48000/2
a=rtpmap:102 iLBC/8000
a=rtpmap:104 iSAC/32000
a=rtpmap:103 iSAC/16000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
m=audio 16468 RTP/AVP 0 8 9 18 120 102 104 103 101
a=rtpmap:0 pcmu/8000
a=rtpmap:8 pcma/8000
a=rtpmap:9 g722/8000
a=rtpmap:18 g729/8000
a=fmtp:18 annexb=yes
a=rtpmap:120 opus/48000/2
a=rtpmap:102 iLBC/8000
a=rtpmap:104 iSAC/32000
a=rtpmap:103 iSAC/16000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
m=audio 16468 RTP/AVP 0 8 9 18 120 102 104 103 101
a=rtpmap:8 pcma/8000
a=rtpmap:9 g722/8000
a=rtpmap:18 g729/8000
a=fmtp:18 annexb=yes
a=rtpmap:120 opus/48000/2
a=rtpmap:102 iLBC/8000
a=rtpmap:104 iSAC/32000
a=rtpmap:103 iSAC/16000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
';
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