static void CompareMatchEngines(string text, string regex)
        {
            Stopwatch timer = new Stopwatch();
            timer.Start();
            System.Text.RegularExpressions.Regex reNet = new System.Text.RegularExpressions.Regex(regex);
            int nMatches = 0;
            foreach (System.Text.RegularExpressions.Match m in reNet.Matches(text)) nMatches++;
            timer.Stop();
            Console.WriteLine("\t.NET library Regex found {0} matches in {1:F3} ms",
                nMatches, timer.Elapsed.TotalMilliseconds);
            double baseline = timer.Elapsed.TotalMilliseconds;

            timer.Restart();
            Regex re = new Regex(regex);
            nMatches = 0;
            foreach (Match m in re.Matches(text)) nMatches++;
            timer.Stop();
            Console.WriteLine("\tBrasswork Regex found {0} matches in {1:F3} ms ({2:F3} of .NET)",
                nMatches, timer.Elapsed.TotalMilliseconds, timer.Elapsed.TotalMilliseconds / baseline);
        }
 static void TimeMatch(string text, string regex)
 {
     Stopwatch timer = new Stopwatch();
     timer.Start();
     Regex re = new Regex(regex);
     int nMatches = 0;
     foreach (Match m in re.Matches(text)) nMatches++;
     timer.Stop();
     Console.WriteLine("\tBrasswork Regex found {0} matches in {1:F3} ms",
         nMatches, timer.Elapsed.TotalMilliseconds);
 }