$re = '/<(\/)?(.*?)>/';
$str = '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>xmp</string>
</array>
<key>name</key>
<string>XMP</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>?????????????????????????????????</string>
<key>name</key>
<string>source.keyword.xmp</string>
</dict>
</array>
<key>scopeName</key>
<string>source.xmp</string>
<key>uuid</key>
<string>750d3b02-a1bc-4b09-a794-1b78c54a4e21</string>
</dict>
</plist>';
$subst = "[\1\2]";
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$result;
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