Sequence of logical OR in ES6/Unicode regular expression in Chrome ✗ vs Firefox ✓
<p>Consider the following Unicode-heavy regular expression (emoji standing in for non-ASCII and extra-BMP characters):</p>

<pre><code>''.match(/||/ug)
</code></pre>

<p>Firefox returns <code>[ "", "", "", "", "", "" ]</code> .</p>

<p>Chrome 52.0.2743.116 and Node 6.4.0 both return <code>null</code>! It doesn’t seem to care if I put the string in a variable and do <code>str.match(…)</code>, nor if I build a RegExp object via <code>new RegExp('||', 'gu')</code>.</p>

<p>(Chrome is ok with just ORing <em>two</em> sequences: <code>''.match(/|/ug)</code> is ok. It’s also ok with non-Unicode: <code>'aakkzzkkaa'.match(/aa|kk|zz/ug)</code> works.)</p>

<p>Am I doing something wrong? Is this a Chrome bug? The <a href="http://kangax.github.io/compat-table/es6/#test-Unicode_code_point_escapes" rel="nofollow noreferrer">ECMAScript compatibility table</a> says I should be ok with Unicode regexps.</p>

<p>(PS: The three emoji used in this example are just stand-ins. In my application, they’ll be arbitrary but distinct strings. But I wonder if the fact that <code>''.match(/[]/ug)</code> works in Chrome is relevant?)</p>

<hr>

<p><strong><em>Update</em></strong> Marked fixed on <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=641091" rel="nofollow noreferrer">12 April 2017</a> in Chromium and downstream (including Chrome and Node).</p>