<span class="hljs-regexp">/escape\/slash/</span>
<span class="hljs-regexp">/escape \/ slash \/ /</span>
<span class="hljs-regexp">/hello/</span>
<span class="hljs-regexp">/hello world/</span>
<span class="hljs-regexp">/\w+\s+(\d+)\s+\w+/</span>
<span class="hljs-regexp">/(.+?): (.+)/</span>
<span class="hljs-regexp">/(?&lt;identifier&gt;[[:alpha:]]\w*) = (?&lt;hex&gt;[0-9A-F]+)/</span>
<span class="hljs-keyword">let</span> p <span class="hljs-operator">=</span> <span class="hljs-regexp">/hello/</span>
<span class="hljs-keyword">let</span> n <span class="hljs-operator">=</span> <span class="hljs-regexp">/hello/</span> <span class="hljs-operator">+</span> <span class="hljs-regexp">/world/</span> <span class="hljs-operator">-</span> <span class="hljs-regexp">/nice/</span>
<span class="hljs-keyword">let</span> q <span class="hljs-operator">=</span> <span class="hljs-regexp">/hello/</span> <span class="hljs-operator">/</span> <span class="hljs-number">2</span>
(<span class="hljs-regexp">/hello/</span>)
method(value: <span class="hljs-regexp">/hello/</span>)
method(<span class="hljs-regexp">/hello/</span>, world)
method(<span class="hljs-regexp">/hello/</span>, <span class="hljs-regexp">/world/</span>)
foo(<span class="hljs-regexp">/a, b/</span>) <span class="hljs-comment">// Will become regex literal &#x27;/a, b/&#x27;</span>
qux(<span class="hljs-regexp">/, !/</span>)  <span class="hljs-comment">// Will become regex literal &#x27;/, !/&#x27;</span>
qux(<span class="hljs-regexp">/,/</span>)    <span class="hljs-comment">// Will become regex literal &#x27;/,/&#x27;</span>
<span class="hljs-keyword">let</span> g <span class="hljs-operator">=</span> hasSubscript[<span class="hljs-regexp">/]/</span><span class="hljs-number">2</span> <span class="hljs-comment">// Will become regex literal &#x27;/]/&#x27;</span>
<span class="hljs-keyword">let</span> h <span class="hljs-operator">=</span> <span class="hljs-regexp">/0; let f = 1/</span> <span class="hljs-comment">// Will become the regex literal &#x27;/0; let y = 1/&#x27;</span>
<span class="hljs-keyword">let</span> i <span class="hljs-operator">=</span> <span class="hljs-regexp">/^x/</span>           <span class="hljs-comment">// Will become the regex literal &#x27;/^x/&#x27;</span>

<span class="hljs-comment">// extended literals</span>
<span class="hljs-regexp">#/raw\/slashes/#</span>
<span class="hljs-regexp">#/raw \/ slashes \/ /#</span>
<span class="hljs-regexp">#/hello/#</span>
<span class="hljs-regexp">#/he/llo/#</span>
<span class="hljs-regexp">##/hello/##</span>
<span class="hljs-regexp">##/he/llo/##</span>
<span class="hljs-regexp">###/hello/###</span>
<span class="hljs-regexp">###/he/llo/###</span>
#<span class="hljs-regexp">###/hello/###</span>#
#<span class="hljs-regexp">###/he/llo/###</span>#
<span class="hljs-regexp">#/hello world/#</span>
<span class="hljs-regexp">#/\w+\s+(\d+)\s+\w+/#</span>
<span class="hljs-regexp">#/(.+?): (.+)/#</span>
<span class="hljs-keyword">let</span> p <span class="hljs-operator">=</span> <span class="hljs-regexp">#/hello/#</span>
<span class="hljs-keyword">let</span> n <span class="hljs-operator">=</span> <span class="hljs-regexp">#/hello/#</span> <span class="hljs-operator">+</span> <span class="hljs-regexp">/world/</span> <span class="hljs-operator">-</span> <span class="hljs-regexp">#/nice/#</span>
<span class="hljs-keyword">let</span> q <span class="hljs-operator">=</span> <span class="hljs-regexp">#/hello/#</span> <span class="hljs-operator">/</span> <span class="hljs-number">2</span>
(<span class="hljs-regexp">#/hello/#</span>)
method(value: <span class="hljs-regexp">#/hello/#</span>)
method(<span class="hljs-regexp">#/hello/#</span>, world)
method(<span class="hljs-regexp">#/hello/#</span>, <span class="hljs-regexp">#/world/#</span>)
<span class="hljs-regexp">#/regex with #not a comment/#</span>

<span class="hljs-comment">// multiline extended literals</span>
<span class="hljs-keyword">let</span> regex <span class="hljs-operator">=</span> <span class="hljs-regexp">#/
  <span class="hljs-comment"># Match a line of the format e.g &quot;DEBIT  03/03/2022  Totally Legit Shell Corp  $2,000,000.00&quot;</span>
  (?&lt;kind&gt;    \w+)                \s\s+
  (?&lt;date&gt;    \S+)                \s\s+
  (?&lt;account&gt; (?: (?!\s\s) . )+)  \s\s+ <span class="hljs-comment"># Note that account names may contain spaces.</span>
  (?&lt;amount&gt;  .*)
/#</span>
<span class="hljs-regexp">#/
  <span class="hljs-comment">#regex comment</span>
  <span class="hljs-comment"># regex comment</span>
  <span class="hljs-comment">## regex comment</span>
  this is another extended regex literal
  /this is still in the regex/
  123
  12 / 2
  (/hello/)
  backslash escape literal newline\
  newline explicit\n
  nice
/#</span>
<span class="hljs-regexp">##/
  <span class="hljs-comment">#regex comment</span>
  <span class="hljs-comment"># regex comment</span>
  <span class="hljs-comment">#/ regex comment</span>
  multiline
/##</span>
<span class="hljs-regexp">###/
  <span class="hljs-comment">#regex comment</span>
  <span class="hljs-comment"># regex comment</span>
  <span class="hljs-comment">#/ regex comment</span>
  multiline
/###</span>

<span class="hljs-comment">// whitespace</span>
<span class="hljs-number">2</span> <span class="hljs-operator">/</span> <span class="hljs-number">2</span> <span class="hljs-operator">/</span> <span class="hljs-number">2</span>     <span class="hljs-comment">// not a regex</span>
<span class="hljs-number">2</span> <span class="hljs-operator">/</span>     <span class="hljs-number">2</span>    <span class="hljs-operator">/</span> <span class="hljs-number">2</span>     <span class="hljs-comment">// not a regex</span>
<span class="hljs-number">2</span> <span class="hljs-regexp">/2/</span> <span class="hljs-number">2</span>       <span class="hljs-comment">// is a regex</span>
<span class="hljs-number">2</span> <span class="hljs-regexp">/2 /</span> <span class="hljs-number">2</span>      <span class="hljs-comment">// is a regex</span>
<span class="hljs-number">2</span> <span class="hljs-operator">/</span> <span class="hljs-number">2</span><span class="hljs-operator">/</span> <span class="hljs-number">2</span>      <span class="hljs-comment">// not a regex</span>
<span class="hljs-number">2</span> <span class="hljs-regexp">#/ 2 /#</span> <span class="hljs-number">2</span>   <span class="hljs-comment">// is a regex</span>
<span class="hljs-regexp">/\ escaped leading whitespace/</span> <span class="hljs-comment">// is a regex</span>
x<span class="hljs-operator">+/</span>y<span class="hljs-operator">/</span> <span class="hljs-comment">// infix operator, not a regex</span>
x <span class="hljs-operator">+</span> <span class="hljs-regexp">/y/</span> <span class="hljs-comment">// is a regex</span>
x<span class="hljs-operator">+</span><span class="hljs-regexp">#/y/#</span> <span class="hljs-comment">// is a regex</span>

<span class="hljs-comment">// structural</span>
<span class="hljs-keyword">struct</span> <span class="hljs-title class_">Planet</span> {
  <span class="hljs-keyword">var</span> d <span class="hljs-operator">=</span> <span class="hljs-regexp">/test/</span>
  <span class="hljs-keyword">var</span> e <span class="hljs-operator">=</span> <span class="hljs-regexp">#/test/#</span>
  <span class="hljs-keyword">var</span> n: <span class="hljs-keyword">Any</span> {
    <span class="hljs-regexp">/test/</span> <span class="hljs-operator">+</span> <span class="hljs-regexp">#/test/#</span>
  }
}

<span class="hljs-comment">// unterminated</span>
<span class="hljs-operator">/</span>something
another line
<span class="hljs-operator">/</span>