"use strict"; //var str = "(() => { fs = 42 })()" var str = "fs = 42" var fs = {}; console.log('pass', !!(str.match(/^\s*\([^)]*\)\s*=>/))) // passing the second regexp test console.log('fs', fs) // {} ("indirect", eval)(str); console.log('fs', fs) // 42. The direct-evaled code modified a variable value outside its scope