>perl -wMstrict -le "my $string = qq{uuu\tvvv\t'www\t\t'\txxx\t'\t\tyyy'\tzzz\n}; print qq{$string}; ;; $string =~ s{ ( ' [^\\']* (?: \\. [^\\']*)* ' ) } { (my $notabs = $1) =~ tr{\t}{}d; $notabs }xmsge; ;; print qq{$string}; " uuu vvv 'www ' xxx ' yyy' zzz uuu vvv 'www' xxx 'yyy' zzz #### use warnings; use strict; # check with escaped double-quotes inside and outside # double-quoted sub-strings. my $string = qq{uuu\t\\"vvv\t"notab\t\t"\txxxx\t"\t\tno\\"tab"\tzzz\n}; print qq{$string}; $string =~ s{ ((?## uuu \"vvv "notab " xxxx " no\"tab" zzz uuu \"vvv "notab" xxxx "no\"tab" zzz