using System.Text.RegularExpressions;
public static void Main()
string pattern = @"(\d+|)[^\d]*(\d+)[^\d]+(\d+\.\d+)";
string input = @"27x1.5";
foreach (Match m in Regex.Matches(input, pattern))
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
for (var index = 0; index < m.Groups.Count; index++)
Console.WriteLine("'{0}' found at index {1}.", m.Groups[index], index);