Как сделать регистр соответствия регулярным выражениям нечувствительным?

У меня есть регулярное выражение для почтового кода Канады .

^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[AZ]{1} *\d{1}[AZ]{1}\d{1}$ 

Он работает нормально, но принимает только прописные буквы. Я хочу, чтобы он работал как для столичных, так и для небольших букв.

Просто используйте опцию IgnoreCase , см. .NET регулярные параметры выражения

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

 Regex r = new Regex(@"^[ABCEGHJKLMNPRSTVXY]\d[AZ] *\d[AZ]\d$", RegexOptions.IgnoreCase); 

Я также удалил все ваши {1} потому что это лишнее. Каждый элемент по умолчанию согласован один раз, не нужно указывать это явно.

Другая возможность – использовать встроенные модификаторы, если вы не можете установить его на объект.

 ^(?i)[ABCEGHJKLMNPRSTVXY]\d[AZ] *\d[AZ]\d$