Я не уверен, поддерживает ли это Python, но в .net regex вы можете указать эти параметры внутри самого регулярного выражения:
(?si)^a.*z$
будет указывать одну строку, игнорировать регистр.
Действительно, документы Python описывают такой механизм здесь: http://docs.python.org/library/re.html
Напомним: (вырезать из ссылки выше)
(? ILmsux)
(Одна или несколько букв из набора 'i', 'L', 'm', 's', 'u', 'x'.) Группа соответствует пустой строке; буквы устанавливают соответствующие флаги: re.I (игнорировать регистр), re.L (зависит от локали), re.M (многострочный), re.S (точка соответствует всем), re.U (зависит от Unicode) и re.X (многословный), для всего регулярного выражения. (Флаги описаны в Содержании модуля.) Это полезно, если вы хотите включить флаги как часть регулярного выражения вместо передачи аргумента флага в функцию compile ().
Обратите внимание, что флаг (? X) изменяет способ анализа выражения. Его следует использовать сначала в строке выражения или после одного или нескольких пробельных символов. Если перед флагом есть непробельные символы, результаты не определены.