Yet another, and more general, approach:
c:\@Work\Perl\monks>perl -wMstrict -le
"my @stopwords= qw(a the of);
my ($stopper) =
map qr{ (?i) $_ }xms,
join q{ | },
reverse sort
map quotemeta,
@stopwords
;
print $stopper;
;;
my $l_bound = qr{ \A }xms;
my $r_bound = qr{ \z }xms;
;;
for my $string (
'of sky blue', 'all blue of', 'out of blue', @ARGV,
) {
printf qq{'$string' };
if ($string =~ m{ $l_bound $stopper | $stopper $r_bound }xms) {
print 'has stopper pattern';
}
else {
print 'has no stopper';
}
}
" of the a off and
(?^msx: (?i) the | of | a )
'of sky blue' has stopper pattern
'all blue of' has stopper pattern
'out of blue' has no stopper
'of' has stopper pattern
'the' has stopper pattern
'a' has stopper pattern
'off' has stopper pattern
'and' has stopper pattern
You may not need such generality.
Give a man a fish: <%-{-{-{-<