Согласно написанному в приведенной статье приведенное ниже выражение pat должно соответствовать "подстроке 'для' перед которой нету слова 'только '"; следовательно replace должен выполнится только для первой строки, а вторую вернуть без изменений, но почему-то модифицируются обе строки:

Код AS3:
var pat:RegExp = /(?!только )(для)/gis;
var str:String = "текст для replace";
var str2:String = "текст только для replace";
trace(str.replace(pat, "only $1"));
//текст only для replace
trace(str2.replace(pat, "only $1"));
//текст только only для replace
//а должно быть: текст только для replace
//ведь правда?
вероятно я упускаю какую-то мелочь... или не так понимаю принцип работы "негативной группы просмотра вперед"