Python がサポートしているかどうかはわかりませんが、.net 正規表現では、正規表現自体でこれらのオプションを指定できます。
(?si)^a.*z$
単一行を指定し、大文字と小文字を区別しません。
実際、Python ドキュメントでは、このようなメカニズムについて説明しています: http://docs.python.org/library/re.html
要約するには:(上記のリンクからカットアンドペースト)
(?iLmsux)
(セット 'i'、'L'、'm'、's'、'u'、'x' からの 1 つまたは複数の文字。) グループは空の文字列に一致します。文字は、対応するフラグを設定します: re.I (大文字と小文字を区別しない)、re.L (ロケール依存)、re.M (複数行)、re.S (ドットはすべてに一致)、re.U (Unicode 依存)、およびre.X (詳細)、正規表現全体。(フラグについては、モジュールの内容で説明しています。)これは、フラグ引数を compile() 関数に渡す代わりに、正規表現の一部としてフラグを含めたい場合に便利です。
(?x) フラグは式の解析方法を変更することに注意してください。式文字列の最初か、1 つ以上の空白文字の後に使用する必要があります。フラグの前に空白以外の文字がある場合、結果は未定義です。