$re = '/^\s*(?:<\?xml[^>]+>)?\s*<([^>]+?)>[\s\S]+?<\/\1>\s*?$/';
$str = '<?xml version="1.0" encoding="UTF-8"?>
<Recordings>
<Recording OVSTag="R00259003F89415063015030509" Name="test">
<Channel EndTC="15:03:59:10" BeginTC="15:03:05:22" Index="3"/>
<Clip UName="801" OVSTag="C00259003F89415063015394226" Name="test_sub_1">
<Channel OutPoint="15:03:20:19" InPoint="15:03:05:22" Default="true" Index="3"/>
<SmartEvent ID="b703578e-8dd1-6b72-c8c7-237132f66652"/>
<SmartEvent ID="9287112f-45a6-1f43-0c28-76111b1b710f"/>
<SmartEvent ID="a71c9fff-d1ae-7f89-5f1a-7a0a281f9904"/>
</Clip>
</Recording>
</Recordings>
<SmartEvents>
<SmartEvent PageID="f3e9e264-3f1a-0f15-814a-cc7c535c1251" ID="b703578e-8dd1-6b72-c8c7-237132f66652" Name="FOUL"/>
<SmartEvent PageID="bc3e8a3b-ea74-dad2-bd55-49a7d9725b83" ID="9287112f-45a6-1f43-0c28-76111b1b710f" Name="MESSI"/>
<SmartEvent PageID="d15ed885-b68b-69db-8d76-3dc21e47d1d1" ID="a71c9fff-d1ae-7f89-5f1a-7a0a281f9904" Name="RAMOS"/>
</SmartEvents>
<SmartEventPages>
<SmartEventPage ID="d15ed885-b68b-69db-8d76-3dc21e47d1d1" Name="Real Team"/>
<SmartEventPage ID="f3e9e264-3f1a-0f15-814a-cc7c535c1251" Name="Action"/>
<SmartEventPage ID="bc3e8a3b-ea74-dad2-bd55-49a7d9725b83" Name="Barcelona Team"/>
</SmartEventPages>';
preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 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