A simple example:
Regex.Replace("12345678910999999999", @"(\d{3})(\d{3})(\d{3})(\d{2})", "$1-$2-$3 $4")
This outputs to:
123-456-789 10999999999
But why? I have specifically set the group index i need. And that group index contains the exact value (checked in debugger).
Here is a fiddle: https://dotnetfiddle.net/dkAPx3