Don't tell us what you think the code does. Tell us what you want to achieve and why.
You've told us what output you expect for a given input, but not how the output is relate to the input. We can't tell that from your code because your code doesn't do what you want, nor even what you describe! The actual output is:
s foo e f s adflkja
Update:
It may be that you want something like:
use warnings; use strict; my $lines = ""; while (<DATA>) { $lines .= $_; } my @wanted = $lines =~ m/^(s(?:(?!e p$).)*e [^p]$)/msg; print @wanted; __DATA__ s erartt e p s foo e f s adflkja
Prints:
s foo e f
In reply to Re: Matching and replacing the minimum string from the tail of the regex
by GrandFather
in thread Matching and replacing the minimum string from the tail of the regex
by abitkin
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |