my $s = do {local $/=undef; }; while(1){ my $matched = 0; $matched ||= $s =~ s#(?!.*?#$1#sgi; $matched ||= $s =~ s#(?!.*?#$1#sgi; $matched ||= $s =~ s#(?!.*?#$1#sgi; last unless $matched; }