sub rightmost{ my($string, @patterns) = @_; my $rightmost = -1; while( my($i, $pattern ) each @patterns ) { $position = $string =~ m/$pattern/ ? $-[0] : -1; $rightmost = $position if $position > $rightmost; }