$re = '%<\?xml(.+?)\?>%';
$str = '<?xml version="1.0" encoding="utf-8"?>
<ns1:StudySQL_response xmlns:ns1="urn:global:cs:jdbc:study">
<Statement_response>
<row>
<XMLTYPE.GETSTRINGVAL(MESSAGE)><study studypid="200">
<studyname>&quot;Immume Treat Phase3&quot;</studyname>
<statusCD>ongoing</statusCD>
<clinicalphase>III</clinicalphase>
<primaryIndication>for lung cancer</primaryIndication>
<startDate>2010-Jun-28</startDate>
</study>
</XMLTYPE.GETSTRINGVAL(MESSAGE)>
</row>
<row>
<XMLTYPE.GETSTRINGVAL(MESSAGE)><study studypid="201">
<studyname>&quot;ABPM Study&quot;</studyname>
<statusCD>on hold</statusCD>
<clinicalphase>III</clinicalphase>
<primaryIndication>skin cancel</primaryIndication>
<startDate>2015-Mar-08</startDate>
</study>
</XMLTYPE.GETSTRINGVAL(MESSAGE)>
</row>
</Statement_response>
</ns1:StudySQL_response>
';
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