shell> perl -Mre=debug -e '$_="1/2 MILE"; m{ 1/2 \s* (?!MILE) }x' Freeing REx: `,' Compiling REx ` 1/2 \s* (?!MILE) ' size 11 first at 1 1: EXACT <1/2>(3) 3: STAR(5) 4: SPACE(0) 5: UNLESSM[-0](11) 7: EXACT (9) 9: SUCCEED(0) 10: TAIL(11) 11: END(0) anchored `1/2' at 0 (checking anchored) minlen 3 Guessing start of match, REx ` 1/2 \s* (?!MILE) ' against `1/2 MILE'... Found anchored substr `1/2' at offset 0... Guessed: match at offset 0 Matching REx ` 1/2 \s* (?!MILE) ' against `1/2 MILE' Setting an EVAL scope, savestack=3 0 <> <1/2 MILE> | 1: EXACT <1/2> 3 <1/2> < MILE> | 3: STAR SPACE can match 1 times out of 32767... Setting an EVAL scope, savestack=3 4 <1/2 > | 5: UNLESSM[-0] 4 <1/2 > | 7: EXACT 8 <1/2 MILE> <> | 9: SUCCEED could match... failed... 3 <1/2> < MILE> | 5: UNLESSM[-0] 3 <1/2> < MILE> | 7: EXACT failed... 3 <1/2> < MILE> | 11: END Match successful! Freeing REx: ` 1/2 \s* (?!MILE) '