$ perl -Mre=debug -le " @F = qw( a b c DBIC A B C DANCER a b c ); for(@F){print if /DBIC/.. /DANCER/ and ! // } " Compiling REx "DBIC" Final program: 1: EXACT (3) 3: END (0) anchored "DBIC" at 0 (checking anchored isall) minlen 4 Compiling REx "DANCER" Final program: 1: EXACT (4) 4: END (0) anchored "DANCER" at 0 (checking anchored isall) minlen 6 Compiling REx "" Final program: 1: NOTHING (2) 2: END (0) minlen 0 Guessing start of match in sv for REx "DBIC" against "DBIC" Found anchored substr "DBIC" at offset 0... Guessed: match at offset 0 Guessing start of match in sv for REx "DBIC" against "DBIC" Found anchored substr "DBIC" at offset 0... Guessed: match at offset 0 A B C Guessing start of match in sv for REx "DANCER" against "DANCER" Found anchored substr "DANCER" at offset 0... Guessed: match at offset 0 Guessing start of match in sv for REx "DANCER" against "DANCER" Found anchored substr "DANCER" at offset 0... Guessed: match at offset 0 Freeing REx: "DBIC" Freeing REx: "DANCER" Freeing REx: ""