$str1=' 1 1A 1B 1 3 1A '; $s1='\s*1'; $s2='\s*1A'; $str1 =~s#($s1)((?:(?!).)*)(?=$s2)#$1$2$3#si; print $str1; output: ------- 1 1A 1B 1 3 1A