title: How to use named groups when performing a Regex.Replace()
body: <p>How do I use named captures when performing Regex.Replace? I have gotten this far and it does what I want but not in the way I want it:</p>
  
  <pre><code>[TestCase("First Second", "Second First")]
  public void NumberedReplaceTest(string input, string expected)
  {
      Regex regex = new Regex("(?&lt;firstMatch&gt;First) (?&lt;secondMatch&gt;Second)");
      Assert.IsTrue(regex.IsMatch(input));
      string replace = regex.Replace(input, "$2 $1");
      Assert.AreEqual(expected, replace);
  }
  </code></pre>
  
  <p>I want to match the two words with named captures and then use the (named) captures when performing the replace.</p>