$_='nor neither nor'; my $cnt = 0; while ((/(.*?)nor/ig) ) { # =================== coarse match printf ("\n"); printf (STDOUT qq/\$\`:%s\n/,$`); printf (STDOUT qq/\$\&:%s\n/,$&); printf (STDOUT qq/\$\':%s\n/,$'); if ($1 !~ /\bneither\b/i){ # =========== finer match printf ("match no. %d: ",$cnt++); printf ("matched ok\n"); } else { printf ("match no. %d: ",$cnt++); printf ("no match\n"); }; }