In both JavaScript and ActionScript, creating a regular expression – even using literal notation – results in the instantiation of a new RegExp object. If you’re going to use a pattern repeatedly (which is usually the case) – cache your patterns! Just like you would any other object – “literal” doesn’t mean “free”.
Simple test shows performance gains on average between 25% (IE) and 100% (FP9).
var pattern = /^bob$/i; var good = "bob"; var bad = "ken"; var start = Number(new Date()); for(var i=0;i<10000;i++){ var g = pattern.test(good); var b = pattern.test(bad); //var g = /^bob$/i.test(good); //var b = /^bob$/i.test(bad); } trace(Number(new Date()) - start);