Gere todas as permutações de texto de um padrão de expressão regular em c #
Então, eu tenho um padrão de expressão regular e quero gerar todas as permutações de texto que seriam permitidas desse padrão.
Exemplo:
var pattern = "^My (?:biological|real)? Name is Steve$";
var permutations = getStringPermutations(pattern);
Isso retornaria a lista de strings abaixo:
Meu nome é Steve
Meu nome verdadeiro é Steve
Meu nome biológico é Steve
Atualizar: Obviamente, um regex tem um número infinito de correspondências, então eu só quero gerar os literais de string opcionais como no (?: Biological | real)? do meu exemplo acima. Algo como (.) * Tem muitos jogos, então eu não vou gerá-los fora disso.