Here you have it:
var str = "ASW+90s, 160, 160S, M45s, 130.5, R+129";
var list = str.Split(new string[] {", "}, StringSplitOptions.RemoveEmptyEntries);
var re1 = new Regex(@"^[A-Za-z]\+\d+$");
var re2 = new Regex(@"^(\d+)[sS]$");
var result = from element in list
let m2 = re2.Match(element)
where re1.Match(element).Success || (m2.Success && int.Parse(m2.Groups[1].Value) > 125)
select element;
result.Dump();
This is not pure-regexp, as I am using semantic validation for the second criteria. And it is working on a concrete list/array, but as you can see it is quite simple to split the string into a list/array.