title: Can't get John Gruber's web URL regex to work with c++ std::regex
body: <p>I'm trying to use c++ <code>std::regex</code> to validate a URL.  Using an abbreviated form of John Gruber's web URL matching regex documented <a href="https://daringfireball.net/2010/07/improved_regex_for_matching_urls" rel="nofollow noreferrer">here</a> (I just shortened the list of TLDs it will accept), <code>std::regex()</code> throws an exception with code 0x0e (which I believe is a syntax error)</p>
  
  <pre><code>std::regex myRegEx(R"((?i)\b((?:https?:(?:/{1,3}|[a-z0-9%])|[a-z0-9.\-]+[.](?:com|net|org|edu|gov|mil)\b/?(?!@))))")
  </code></pre>
  
  <p>Note I'm using a c++11 raw string to avoid the need to escape the backslashes.</p>
  
  <p>I'm guessing the c++ regex engine expects a different syntax than what John's expression uses, but I don't know enough to figure out how to adapt it.</p>
  
  <p>What can I do to make this regular expression work with <code>std::regex</code>?</p>