In the following code, using “pattern” is fine whereas “pattern2” throws a RegexpSyntaxException :
var receivedString = "$GPGSV,1,1,11,03,03,111,00,04,15,270,00,06,01,010,00,13,06,292,00*74";
var pattern = "[$]([A-Z]{2})([A-Z]{3}).*[*]([0-9a-f]{2})";
var pattern2 = "[$](?<SignalOrigin>[A-Z]{2})(?<message>[A-Z]{3}).*[*](?<checksum>[0-9a-f]{2})";
Regex validNMEA = new Regex(pattern, RegexOptions.IgnoreCase);
if (validNMEA.IsMatch(receivedString))
{
Match m = validNMEA.Match(receivedString);
Debug.WriteLine($"Signal origin : {m.Groups[1].Value}, message : {m.Groups[2].Value}, checksum : 0x{m.Groups[3].Value}");
}
That’s not really a big issue but perhaps a list of unsupported features could be useful ?