public void Test_IsMatch_29() { const string EXPECTED_REGEX_PATTERN = @"\G(.+)[\t\u007C](.+)\r?\n"; var pattern = new RegExpPattern() .ByOnlyMatchingWherePreviousMatchEnded() .GroupOf( true, p => p.OneOrMoreOf( false, false, p2 => p2.AnyCharacter()) ) .AnyCharacter( RegExpEscapeCharacter.Build(EscapeCharacter.EscapeCharacterType.Tab), RegExpCharacter.Build('|', true)) .GroupOf( true, p => p .OneOrMoreOf( false, false, p2 => p2.AnyCharacter())) .ZeroOrOneOf( false, false, p => p.Character(EscapeCharacter.EscapeCharacterType.CarriageReturn)) .Character(EscapeCharacter.EscapeCharacterType.NewLine); pattern.ToString().Should().Be(EXPECTED_REGEX_PATTERN); const string INPUT = "Mumbai, India|13,922,125\t\n" + "Shanghai, China\t13,831,900\n" + "Karachi, Pakistan|12,991,000\n" + "Delhi, India\t12,259,230\n" + "Istanbul, Turkey|11,372,613\n"; Console.WriteLine("Population of the World's Largest Cities, 2009"); Console.WriteLine(); Console.WriteLine("{0,-20} {1,10}", "City", "Population"); Console.WriteLine(); foreach (Match match in pattern.Matches(INPUT)) { Console.WriteLine("{0,-20} {1,10}", match.Groups[1].Value, match.Groups[2].Value); } }