UB: Regex.Match de C # devuelve una cadena completa en lugar de una parte al hacer coincidir

¡Atención! Esto esNO relacionado conProblema de expresiones regulares, coincide con toda la cadena en lugar de una parte

Hola a todos. intento hacer

Match y = Regex.Match(someHebrewContainingLine, @"^.{0,9} - \[(.*)?\s\d{1,3}");

Aparte de las otras peculiaridades hebreas de VS (¿cómo te gusta reemplazar] para [al editar la cadena?), Ocasionalmente devuelve los resultados locos:

Match.Captures.Count = 1;
Match.Captures[0] = whole string! (not expected)
Match.Groups.Count = 2; (not expected)
Match.Groups[0] = whole string again! (not expected)
Match.Groups[1] = (.*)? value (expected).

Regex.Matches() está actuando de la misma manera.

¿Cuál puede ser una razón general para tal comportamiento? Nota: no está actuando de esta manera en una serie de pruebas simples comoRegex.Match("-היי45--", "-(.{1,5})-") (la muestra se muestra incorrectamente, por favor mire el código fuente de la página), debe haber algo con el regex que lo hace codicioso. La cadena coincidente contiene[ .... ], pero simplemente agregarlos a la cadena de prueba no causa el mismo efecto.

Respuestas a la pregunta(3)

Su respuesta a la pregunta