Multiple matches C# with Example
using System.Text.RegularExpressions; List found = new List(); string pattern = ":(.*?):"; string lookup = "--:text in here:--:another one:-:third one:---!123:fourth:"; // Instanciate your regex object and pass a pattern to it Regex rgxLookup = new Regex(pattern, RegexOptions.Singleline, TimeSpan.FromSeconds(1)); MatchCollection mLookup = rgxLookup.Matches(lookup); foreach(Match match in mLookup) { found.Add(match.Groups[1].Value); } Result: found = new List() { "text in here", "another one", "third one", "fourth" }