title: Why does Visual Studio use such a strange regex syntax
body: <p>Is there any reason why Visual Studio uses such a strange syntax (for instance in the search/replace dialog)?</p>
  
  <p>Instead of writing <code>\s*(\w+) = new Process\(\)</code> I have to write <code>:b*{:a+} = new Process\(\)</code>.<br>
  I am always struggling with this syntax - especially since the normal <a href="http://en.wikipedia.org/wiki/.NET_Framework" rel="noreferrer">.NET</a> syntax is the former one.</p>
  
  <p>This is an incomplete comparison between the two syntaxes:</p>
  
  <pre><code>What            Visual  .NET   Comment
                  Studio
  ----------------------------------------------------------------
  Tab/Spaces      :b       \s    Either tab or space
  Alphanumeric    :a       \w    ([a-zA-Z0-9])
  Subexpression   {}       ()
  Substitution    \n       $n    Substitutes the substring matched 
                                 by a numbered subexpression.
  Backreference   \n       \n    Matches the value of a numbered 
                                 subexpression.
  ----------------------------------------------------------------
  </code></pre>
  
  <p>See here (<a href="http://msdn.microsoft.com/en-us/library/2k3te2cs(VS.80).aspx" rel="noreferrer">Visual Studio</a>, <a href="http://msdn.microsoft.com/en-us/library/az24scfc.aspx" rel="noreferrer">C#</a>) for more information.</p>
  
  <p>Is there any reason for this? Is it historical? Is there any advantage?</p>