using System; using System.Text.RegularExpressions; public class Test { public static void Main() { string[] strings = {"msl_0123456789_otherstuff.csv", "msl_test.xml","anythingShort.w1", "123456testxxxxxxxx"}; string pattern = @"^(?:msl_)?(\S{1,10})\S*\.[^\W_]{2,}$"; foreach (String s in strings) { Match match = Regex.Match(s, pattern); if (match.Success) { Console.WriteLine(match.Groups[1]); } } } }