title: What does (^?)* mean in this regex?
body: <p>I have this regex:</p>
  
  <pre><code>^(^?)*\?(.*)$
  </code></pre>
  
  <p>If I understand correctly, this is the breakdown of what it does:</p>
  
  <ul>
  <li>^ - start matching from the beginning of the string</li>
  <li>(^?)* - I don't know know, but it stores it in $1</li>
  <li>\? - matches a question mark</li>
  <li>(.*)$ - matches anything until the end of the string</li>
  </ul>
  
  <p>So what does (^?)* mean?</p>