/*=== foo foo fo fo f f ===*/ /* Undefined captures were not skipped correctly. */ try { print('foo'.replace(/(o)|(o)/, '$1')); print('foo'.replace(/(o)|(o)/, '$01')); // capture 2 not found, matching string should be replaced with empty; // with the bug, the first one would print "f2o". print('foo'.replace(/(o)|(o)/, '$2')); print('foo'.replace(/(o)|(o)/, '$02')); print('foo'.replace(/(o)|(o)/g, '$2')); print('foo'.replace(/(o)|(o)/g, '$02')); } catch (e) { print(e); }