using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace dotnetRegex
{
class Program
{
static void Main(string[] args)
{
var text = $"{Environment.NewLine}a{Environment.NewLine}b";
var patN = @"^.*$";
var reN = new Regex(patN);
var msN = reN.Matches(text);
Console.WriteLine($"Begin and end specified: {msN.Count}");
Console.WriteLine();
var patB = @"^.*";
var reB = new Regex(patB);
var msB = reB.Matches(text);
foreach (var mB in msB)
Console.WriteLine($"Begin specified only : {string.Join(" ", mB.ToString().Select(c => (int)c))}");
Console.WriteLine();
var patE = @".*$";
var reE = new Regex(patE);
var msE = reE.Matches(text);
foreach (var mE in msE)
Console.WriteLine($"End specified only : {string.Join(" ", mE.ToString().Select(c => (int)c))}");
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0Owp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpuYW1lc3BhY2UgZG90bmV0UmVnZXgKewogICAgY2xhc3MgUHJvZ3JhbQogICAgewogICAgICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gJCJ7RW52aXJvbm1lbnQuTmV3TGluZX1he0Vudmlyb25tZW50Lk5ld0xpbmV9YiI7CgogICAgICAgICAgICB2YXIgcGF0TiA9IEAiXi4qJCI7CiAgICAgICAgICAgIHZhciByZU4gPSBuZXcgUmVnZXgocGF0Tik7CiAgICAgICAgICAgIHZhciBtc04gPSByZU4uTWF0Y2hlcyh0ZXh0KTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoJCJCZWdpbiBhbmQgZW5kIHNwZWNpZmllZDoge21zTi5Db3VudH0iKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoKTsKCiAgICAgICAgICAgIHZhciBwYXRCID0gQCJeLioiOwogICAgICAgICAgICB2YXIgcmVCID0gbmV3IFJlZ2V4KHBhdEIpOwogICAgICAgICAgICB2YXIgbXNCID0gcmVCLk1hdGNoZXModGV4dCk7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBtQiBpbiBtc0IpCiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkIkJlZ2luIHNwZWNpZmllZCBvbmx5ICAgOiB7c3RyaW5nLkpvaW4oIiAiLCBtQi5Ub1N0cmluZygpLlNlbGVjdChjID0+IChpbnQpYykpfSIpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOwoKICAgICAgICAgICAgdmFyIHBhdEUgPSBAIi4qJCI7CiAgICAgICAgICAgIHZhciByZUUgPSBuZXcgUmVnZXgocGF0RSk7CiAgICAgICAgICAgIHZhciBtc0UgPSByZUUuTWF0Y2hlcyh0ZXh0KTsKICAgICAgICAgICAgZm9yZWFjaCAodmFyIG1FIGluIG1zRSkKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCQiRW5kIHNwZWNpZmllZCBvbmx5ICAgICA6IHtzdHJpbmcuSm9pbigiICIsIG1FLlRvU3RyaW5nKCkuU2VsZWN0KGMgPT4gKGludCljKSl9Iik7CiAgICAgICAgfQogICAgfQp9Cg==