<?php
function myFn($a, $b, $c) {
return "BEGIN " . $b . " END";
}
$s = "abc <tag>def \n ghi 'jkl' mno \"pqr\" stu</tag> vwx";
$s = preg_replace('!(<tag>)(.*?)(</tag>)!ise', 'myFn("$1", "$2", "$3")', $s); print $s;
?>
PD9waHAKZnVuY3Rpb24gbXlGbigkYSwgJGIsICRjKSB7CiAgJGIgPSBwcmVnX3JlcGxhY2UoIiEoPzpcXFwnfFtcIlxuXHJdKSEiLCAnJywgJGIpOwogIHJldHVybiAiQkVHSU4gIiAuICRiIC4gIiBFTkQiOwp9CiRzID0gImFiYyA8dGFnPmRlZiBcbiBnaGkgJ2prbCcgbW5vIFwicHFyXCIgc3R1PC90YWc+IHZ3eCI7CiRzID0gcHJlZ19yZXBsYWNlKCchKDx0YWc+KSguKj8pKDwvdGFnPikhaXNlJywgJ215Rm4oIiQxIiwgIiQyIiwgIiQzIiknLCAkcyk7CnByaW50ICRzOwo/Pg==