<?php
$html = <<<DATA
<a>XXX</a>
<a some-attr="bla" some-attr2="bla2"><b>XXX</b></a>
<a> bla <b>XXX</b></a>
DATA;
echo preg_replace('~(<(\w+)[^<]*?>)[^<]*(<\/\2>)~', '$1YYY$3', $html);
PD9waHAKCiRodG1sID0gPDw8REFUQQo8YT5YWFg8L2E+CjxhIHNvbWUtYXR0cj0iYmxhIiBzb21lLWF0dHIyPSJibGEyIj48Yj5YWFg8L2I+PC9hPgo8YT4gICBibGEgICA8Yj5YWFg8L2I+PC9hPgpEQVRBOwplY2hvIHByZWdfcmVwbGFjZSgnfig8KFx3KylbXjxdKj8+KVtePF0qKDxcL1wyPil+JywgJyQxWVlZJDMnLCAkaHRtbCk7