C. Scott Ananian (2015-06-13T06:06:46.000Z)
d at domenic.me (2015-06-16T16:53:33.433Z)
A slight tweak allows you to pass flags: ```js function re(flags, ...args) { if (typeof template !== 'string') { // no flags given return re(undefined)(flags, ...args); } return function(template, ...subs) { const parts = []; const numSubs = subs.length; for (let i = 0; i < numSubs; i++) { parts.push(template.raw[i]); parts.push(subs[i].replace(/[\/\\^$*+?.()|[\]{}]/g, '\\$&')); } parts.push(template.raw[numSubs]); return RegExp(parts.join(''), flags); }; } ``` Use like this: ```js var r = re('i')`cAsEiNsEnSiTiVe`; ```