set SRVBUILD=\\srvbuild\e want to remove: \\srvbuild\e set INCLUDE=%SRVBUILD%\ADW61\VENDOR\MICROSOFT\PLATFORMSDK\INCLUDE;\%SRVBUILD%\ADW61\VENDOR\MICROSOFT\PLATFORMSDK\WTL\INCLUDE;%SRVBUILD%\KEYBASE\SRC32\H;%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE; want to remove: everything from %SRVBUILD% to the first %MSVCDir% not including %MSVCDir% this is the code I have so far, but no luck: foreach my $line (@vcvars) { if ($line =~ /set SRVBUILD=/) { $line =~ s/^\=(\W*)/\=INI_CODE_HERE/; print VCVARS32 $line; next; } if ($line =~ /set INCLUDE=/) { $line =~ s/set INCLUDE=/TEST/; my $result =~ s/^\%SRVBuild(\w+)^\%MSVCDir\%/INI_CODE_HERE/; print "New Line: $result\n"; print VCVARS32 $line; next; } else { print VCVARS32 $line; } }