title: Regex Match.Value returning entire value, not the matched groups
body: <p>I am currently trying to achieve the relatively simple task of capturing values from a string which exist between sets of curly braces using a regular expression. The expression I have written works fine on a number of online tools I have tested it on, however this is not the case in .NET.</p>
  
  <pre><code>String str= "{Value1}-{Value2}.{Value3}";
  Regex regex = new Regex( @"\{(\w+)\}");
  
  MatchCollection matches = regex.Matches(str);
  
  foreach(Match match in matches)
  {
      Console.WriteLine(match.Value);
  }
  </code></pre>
  
  <p>I would expect to get 3 matches of "Value1", "Value2", "Value3". However .NET is also returning the brackets, i.e. "{Value1}", "{Value2}", "{Value3}".</p>
  
  <p>Any help on how this can be achieved would be great.</p>