В примере тег code заменён src.
есть задача найти все теги < src > ... < /src >
и заключить в < pre> < src class=''> ... < /src >< /pre>
у тега src может быть атрибут lang
регулярка
$sText = preg_replace("/<src * lang=(.*?)>(.*)<\/src\>/is", "<pre><src class=$1>$2</src></pre>", $sText);
Работает при одном блоке < src > ... < /src > делает < pre>< src class=''>..< /src>< /pre>
при нескольких делает так
< pre >
< src src class='' > ... < /src >
< src src class=''> ... < /src >
< /pre>
А нужно так
< pre >
< src src class='' > ... < /src >
< /pre>
< pre >
< src src class=''> ... < /src >
< /pre>
Сам решить задачу не смог. Спасибо.