Генерация всех перестановок текста из регулярного выражения в C #

Итак, у меня есть шаблон регулярных выражений, и я хочу сгенерировать все текстовые перестановки, которые будут разрешены из этого шаблона.

Пример:

var pattern = "^My (?:biological|real)? Name is Steve$";
var permutations = getStringPermutations(pattern);

Это вернет список строк ниже:

Меня зовут стив

Мое настоящее имя Стив

Мое биологическое имя стив

Обновить: Очевидно, что регулярное выражение имеет бесконечное количество совпадений, поэтому я хочу генерировать только из необязательных строковых литералов, как в (?: Bio | real)? из моего примера выше. Что-то вроде (.) * Имеет слишком много совпадений, поэтому я не буду генерировать их из этого.

Ответы на вопрос(3)

Ваш ответ на вопрос