c:\@Work\Perl\monks>perl -wMstrict -le "for my $sr ('k\s', 'k\\s', 'k\\\\s', qr{ k \\ s }xms, qr{k\\s}xms) { my $s = 'remove back\slash'; printf qq{'$s' %s -> }, ref $sr ? $sr : qq{'$sr'}; $s =~ s{$sr}{xx}xmsg; print qq{'$s'}; } " 'remove back\slash' 'k\s' -> 'remove back\slash' 'remove back\slash' 'k\s' -> 'remove back\slash' 'remove back\slash' 'k\\s' -> 'remove bacxxlash' 'remove back\slash' (?^msx: k \\ s ) -> 'remove bacxxlash' 'remove back\slash' (?^msx:k\\s) -> 'remove bacxxlash' #### c:\@Work\Perl\monks>perl -wMstrict -le "my $inputtext = qq{a multi line\nstring and\nanother line\nthing here\n}; print qq{<<$inputtext>> \n}; ;; my $newText = replaceText($inputtext, qr{ lin .*? ing }xms, 'xx-xx'); print qq{<<$newText>>}; ;; sub replaceText { my ($inputText, $regex, $replacement) = @_; $inputText =~ s/$regex/$replacement/g; return $inputText; } " <> <>