using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Linq;
public class Test
{
public static void Main()
{
var input = "StartTest\n NoInclude\nEndTest\n\nStartTest\n Include\nEndTest";
var regex = new Regex(@"(?s)StartTest(?:(?!(?:Start|End)Test|NoInclude).)*EndTest");
var results = regex.Matches(input).Cast<Match>()
.Select(p => p.Value)
.ToList();
Console.WriteLine(string.Join("\n", results));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKdXNpbmcgU3lzdGVtLkxpbnE7CnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKICAgICAgICB2YXIgaW5wdXQgPSAiU3RhcnRUZXN0XG4gIE5vSW5jbHVkZVxuRW5kVGVzdFxuXG5TdGFydFRlc3RcbiAgSW5jbHVkZVxuRW5kVGVzdCI7CiAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ2V4KEAiKD9zKVN0YXJ0VGVzdCg/Oig/ISg/OlN0YXJ0fEVuZClUZXN0fE5vSW5jbHVkZSkuKSpFbmRUZXN0Iik7CiAgICAgICAgdmFyIHJlc3VsdHMgPSByZWdleC5NYXRjaGVzKGlucHV0KS5DYXN0PE1hdGNoPigpCiAgICAgICAgICAgICAgICAgICAgICAgLlNlbGVjdChwID0+IHAuVmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgLlRvTGlzdCgpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHN0cmluZy5Kb2luKCJcbiIsIHJlc3VsdHMpKTsKICAgIH0KfQ==