perl 正規表現で末尾から文字列出現回数指定

正規表現で3回目の単語の後に文字を入れたい - PHP - 教えて!goo
<?php
$str=<<<eof
<p>昔むかし、あるところに</p>
<p>おじいさんと</p>
<p>おばあさんが</p>
<p>住んでいました。</p>
eof;
$pattern="/(.+?<\/p>){3}/s";
$replacement="$0文字";
$str=preg_replace($pattern,$replacement,$str);
print htmlspecialchars($str);
?>
対象データ
abc11abc22abc33abc44abc55abc66 abcabcabc abc11abc abcabc22abc abXabcbcabcabc abcabcabcabcabc
正規表現
abc(?=(((?!abc).)*abc){2}((?!abc).)*$) 別解 abc(?=(.*abc){2})(?!(.*abc){3})