# regex – C# Distinguish between first and second match

I am using regex to extract the numbers from a string which contains a range. The range could be "less than x", "greater than x" or "between x and y":

"10 - 22"
"< 0,5"
"3,50000 - 11,0"
"< 120000"
"> 12"


Below is the relevant code snippet. In the case of "less than x" and "greater than x" I use the RegEx (d*,d*)?(d*) to capture the integer/decimal.

Low = r.Descr.Contains('>')
? new Quantity {
Value = Convert.ToDecimal(Regex.Match(r.Descr, @"(d*,d*)?(d*)").Value)
}
: r.Descr.Contains('-')
? new Quantity {
Value = Convert.ToDecimal(Regex.Match(r.Descr, @"").Value)
}
: null,
High = r.Descr.Contains('<')
? new Quantity {
Value = Convert.ToDecimal(Regex.Match(r.Descr, @"(d*,d*)?(d*)").Value)
}
: r.Descr.Contains('-')
? new Quantity {
Value = Convert.ToDecimal(Regex.Match(r.Descr, @"").Value)
}
: null,


In the case of "between x and y" I am having difficulties in constructing a RegEx which would extract the relevant number. Is there a way to do this using RegEx?