Если наши входные данные будут такими же простыми, как и в вопросе, мы начнем с простого выражения и preg_replace
:
$re = '/(.+?)(<p>.+?<\/p>)/m';
$str = 'this is some <b>text</b><p>Beginning of a paragraph</p>';
$subst = '<p>$1<\/p>$2';
$result = preg_replace($re, $subst, $str);
echo $result;
выход
<p>this is some <b>text</b><\/p><p>Beginning of a paragraph</p>
RegEx Circuit
jex.im визуализирует регулярные выражения:
![enter image description here](https://i.stack.imgur.com/O77nh.png)