<?php
$file = '[trace-123] <request>This is a log line</request>
[trace-124] <reply>This is another log line
this is part of "[trace-124]" still.</reply>
[trace-125] <request>final log line.</request>' ;
$tracePattern = "/\[trace-[0-9]*+\]+\s*<(?:reply|request)>.*?<\/(?:reply|request)>/s" ;
$lines = $lines [ 0 ] ; // by defaults, $lines[0] will be an array of the matches, so get that
echo "<pre>" ; print_r ( $lines ) ; echo "</pre>" ;
PD9waHAKCiAgICAkZmlsZSA9ICdbdHJhY2UtMTIzXSA8cmVxdWVzdD5UaGlzIGlzIGEgbG9nIGxpbmU8L3JlcXVlc3Q+CiAgICBbdHJhY2UtMTI0XSA8cmVwbHk+VGhpcyBpcyBhbm90aGVyIGxvZyBsaW5lCiAgICAKICAgIHRoaXMgaXMgcGFydCBvZiAiW3RyYWNlLTEyNF0iIHN0aWxsLjwvcmVwbHk+CiAgICBbdHJhY2UtMTI1XSA8cmVxdWVzdD5maW5hbCBsb2cgbGluZS48L3JlcXVlc3Q+JzsKICAgIAogICAgJHRyYWNlUGF0dGVybiA9ICIvXFt0cmFjZS1bMC05XSorXF0rXHMqPCg/OnJlcGx5fHJlcXVlc3QpPi4qPzxcLyg/OnJlcGx5fHJlcXVlc3QpPi9zIjsKICAgIAogICAgcHJlZ19tYXRjaF9hbGwoJHRyYWNlUGF0dGVybiwkZmlsZSwkbGluZXMpOwogICAgCiAgICAkbGluZXMgPSAkbGluZXNbMF07IC8vIGJ5IGRlZmF1bHRzLCAkbGluZXNbMF0gd2lsbCBiZSBhbiBhcnJheSBvZiB0aGUgbWF0Y2hlcywgc28gZ2V0IHRoYXQKICAgIAogICAgZWNobyAiPHByZT4iO3ByaW50X3IoJGxpbmVzKTtlY2hvICI8L3ByZT4iOw==