if (my ($match) = $s =~ /yesterday (.*?) after/s) { say $match; } #### yesterday foo yesterday bar after #### foo yesterday bar #### bar #### if (my ($match) = $s =~ /hello ((?:(?!yesterday).)*) yesterday/s) { say $match; }