[~] $ perl -Mre=debug -wle'"x" =~ /x/' Freeing REx: `,' Compiling REx `x' size 3 first at 1 rarest char x at 0 1: EXACT (3) 3: END(0) anchored `x' at 0 (checking anchored isall) minlen 1 Omitting $` $& $' support. EXECUTING... Guessing start of match, REx `x' against `x'... Found anchored substr `x' at offset 0... Guessed: match at offset 0 Freeing REx: `x' [~] $ perl -Mre=debug -wle'"x" =~ /[x]/' Freeing REx: `,' Compiling REx `[x]' size 10 first at 1 1: ANYOF[x](10) 10: END(0) stclass `ANYOF[x]' minlen 1 Omitting $` $& $' support. EXECUTING... Matching REx `[x]' against `x' Setting an EVAL scope, savestack=3 0 <> | 1: ANYOF[x] 1 <> | 10: END Match successful! Freeing REx: `[x]' #### [~] $ perl -MBenchmark -we'timethese(-5,{x=>q{"x"=~/x/},"[x]"=>q{"x"=~/[x]/}})' Benchmark: running [x], x, each for at least 5 CPU seconds... [x]: 4 wallclock secs ( 5.23 usr + 0.00 sys = 5.23 CPU) @ 852787.57/s (n=4460079) x: 6 wallclock secs ( 5.25 usr + 0.00 sys = 5.25 CPU) @ 1499188.19/s (n=7870738)