Вот простой пример:
text="<span class="bold js-clone-url-permission">Read+Write</span> access";
searchPattern="(.*)";
replacePattern="До $1 После";
result=text.replace(new RegExp(searchPattern,'g'), replacePattern);
Результат:
До <span class="bold js-clone-url-permission">Read+Write</span> access ПослеДо После
Вопрос: Почему До После попадает в результат дважды?
Проверено на Firefox 14, Opera 12.