using System.Text.RegularExpressions;
public static void Main()
string input = "2,Ref1|2,Ref2|5.3,Ref3";
string pattern = @"(^((\|){0,1})+([0-9]+)+[,]+([a-zA-Z]{3})+([0-9]{1})+((\|){0,1})+(.*))";
MatchCollection matches = Regex.Matches (input, pattern);
Console.WriteLine("{0} matches found in:\n {1}", matches.Count, input);
var t = Regex.Matches (input, pattern).Cast<Match>()