using System; using System.IO; using System.Text.RegularExpressions; public class Test { public static void Main() { var s = "1 2 obj\rObj1\rendobj\r2 3 obj\rObj2\rendobj\r3 45 obj\rObj3\rendobj"; var matches = Regex.Matches(s, @"(?<=\r|^)(?\d+ \d+) obj\r(?.+?)\rendobj(?=\r|$)", RegexOptions.Multiline | RegexOptions.Singleline); foreach (Match m in matches) { Console.WriteLine("___ MATCH ___"); Console.WriteLine(m.Value); } } }