my $regex = qr'(?:\[.*?\])'; compile regex; use non-capture grouping $str =~ s/$regex/~~/g;