Regex está se comportando preguiçoso, deve ser ganancioso

Eu pensei que por padrão meuRegex exibirá o comportamento ganancioso que eu quero, mas não está no código a seguir:

 Regex keywords = new Regex(@"in|int|into|internal|interface");
 var targets = keywords.ToString().Split('|');
 foreach (string t in targets)
    {
    Match match = keywords.Match(t);
    Console.WriteLine("Matched {0,-9} with {1}", t, match.Value);
    }

Resultado:

Matched in        with in
Matched int       with in
Matched into      with in
Matched internal  with in
Matched interface with in

Agora percebo que poderia funcionar para este pequeno exemplo se simplesmente classificasse as palavras-chave por comprimento decrescente, mas

Quero entender por que isso não está funcionando conforme o esperado eo projeto em que estou trabalhando tem muito mais palavras no Regex e é importante mantê-las em ordem alfabética.

Portanto, minha pergunta é: por que isso é preguiçoso e como corrigi-lo?

questionAnswers(3)

yourAnswerToTheQuestion