Description
NonBacktracking seems to have an issue with repeaters processed under IgnoreCase and their impact on lazy loops.
Reproduction Steps
using System.Text.RegularExpressions;
string pattern = ".*?\\da{2}";
string input = "This1Aa should 2Aa match";
Console.WriteLine($"Interpreter : {new Regex(pattern, RegexOptions.IgnoreCase).Match(input)}");
Console.WriteLine($"Compiled : {new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled).Match(input)}");
Console.WriteLine($"NonBacktracking: {new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.NonBacktracking).Match(input)}");
Expected behavior
Interpreter : This1Aa
Compiled : This1Aa
NonBacktracking: This1Aa
Actual behavior
Interpreter : This1Aa
Compiled : This1Aa
NonBacktracking: This1Aa should 2Aa
cc: @olsaarik, @veanes