using System.Text.RegularExpressions;
using System.Collections.Generic;
public static void Main()
List<dynamic> Out = new List<dynamic>();
List<string> patternGroups = new List<string> { @"\d{1,}", "D", @"\d{1,}" };
string pattern = String.Join("", patternGroups.Select(x => $"({x})"));
var r = new Regex(pattern);
Match match = r.Match(str);
for (int i = 0; i < patternGroups.Count; i++)
Regex = patternGroups[i],
Value = match.Groups[i + 1].Value
Console.WriteLine(JsonSerializer.Serialize(Out, new JsonSerializerOptions { WriteIndented = true }));