Regex Match.Value que devuelve el valor completo, no los grupos coincidentes

Actualmente estoy tratando de lograr la tarea relativamente simple de capturar valores de una cadena que existe entre conjuntos de llaves usando una expresión regular. La expresión que he escrito funciona bien en varias herramientas en línea en las que lo he probado, sin embargo, este no es el caso en .NET.

String str= "{Value1}-{Value2}.{Value3}";
Regex regex = new Regex( @"\{(\w+)\}");

MatchCollection matches = regex.Matches(str);

foreach(Match match in matches)
{
    Console.WriteLine(match.Value);
}

Esperaría obtener 3 coincidencias de "Value1", "Value2", "Value3". Sin embargo, .NET también devuelve los corchetes, es decir, "{Value1}", "{Value2}", "{Value3}".

Cualquier ayuda sobre cómo se puede lograr esto sería genial.