$str =~ s/^((?:[^|]*\|){15})STOCK/${1}BOXXE/; #### $str =~ s/STOCK(?=(?:\|[^|]*){2}$)/BOXXE/;