using System.Text.RegularExpressions;
public static void Main(string[] args)
var number = @"[-]?(?:[\.[0-9]+]|[0-9]+(?:\.[0-9]*)?)";
var point = $"(?:{number},{number})";
var end = $"(?<endPoint>{point})";
var start = $"(?<startPoint>{point})";
var main = $"(?<mainPoint>{point})";
var triple = $"(?<cubicTriple>{point} {point} {point})";
var exp = new Regex($"^(?:s,{start} {end}|e,{end} {start}) {main}( {triple})*");
var spline = "e,149.82,80.634 95.314,168.45 104.04,157.76 113.71,146.27 123,136 130.59,127.61 135.81,128.05 141,118 145.31,109.66 147.62,99.683 148.84,90.651";
var m = exp.Match(spline);
foreach (var ct in m.Groups["cubicTriple"].Captures)
Console.WriteLine(m.Success);