using System;
using System.Globalization;
using System.Linq;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
string text = "blub ASP.filename_aspx foo ASP.filename2_aspx bah ...";
var matches = new List<string>();
int index = text.IndexOf("ASP", StringComparison.OrdinalIgnoreCase);
int endIndex = index >= 0 ? text.IndexOf("_aspx", index + 1, StringComparison.OrdinalIgnoreCase) : -1;
while (index >= 0 && endIndex >= 0)
{
index += "ASP.".Length;
endIndex += "_aspx".Length;
matches.Add(text.Substring(index, endIndex - index));
index = text.IndexOf("ASP", endIndex + 1, StringComparison.OrdinalIgnoreCase);
endIndex = index >= 0 ? text.IndexOf("_aspx", index + 1, StringComparison.OrdinalIgnoreCase) : -1;
}
foreach(var str in matches)
Console.WriteLine(str);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwoKcHVibGljIGNsYXNzIFRlc3QKewogICAgCgoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgICAgIHN0cmluZyB0ZXh0ID0gImJsdWIgQVNQLmZpbGVuYW1lX2FzcHggZm9vIEFTUC5maWxlbmFtZTJfYXNweCBiYWggLi4uIjsKICAgICAgICB2YXIgbWF0Y2hlcyA9IG5ldyBMaXN0PHN0cmluZz4oKTsKICAgICAgICBpbnQgaW5kZXggPSB0ZXh0LkluZGV4T2YoIkFTUCIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpOwogICAgICAgIGludCBlbmRJbmRleCA9IGluZGV4ID49IDAgPyB0ZXh0LkluZGV4T2YoIl9hc3B4IiwgaW5kZXggKyAxLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWxJZ25vcmVDYXNlKSA6IC0xOwogICAgICAgIHdoaWxlIChpbmRleCA+PSAwICYmIGVuZEluZGV4ID49IDApCiAgICAgICAgewogICAgICAgICAgICBpbmRleCArPSAiQVNQLiIuTGVuZ3RoOwogICAgICAgICAgICBlbmRJbmRleCArPSAiX2FzcHgiLkxlbmd0aDsKICAgICAgICAgICAgbWF0Y2hlcy5BZGQodGV4dC5TdWJzdHJpbmcoaW5kZXgsIGVuZEluZGV4IC0gaW5kZXgpKTsKICAgICAgICAgICAgaW5kZXggPSB0ZXh0LkluZGV4T2YoIkFTUCIsIGVuZEluZGV4ICsgMSwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsSWdub3JlQ2FzZSk7CiAgICAgICAgICAgIGVuZEluZGV4ID0gaW5kZXggPj0gMCA/IHRleHQuSW5kZXhPZigiX2FzcHgiLCBpbmRleCArIDEsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpIDogLTE7CiAgICAgICAgfQogICAgICAgIGZvcmVhY2godmFyIHN0ciAgaW4gbWF0Y2hlcykKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoc3RyKTsKCX0KfQ==