Pythonの正規表現の"{m,n}?"の挙動について
次のようなスクリプトがあった場合、私が思っていた結果は"aab"なのですが、"aaaab"が返ってきてしまいます。
s = "aaaab"
pattern = r"a{2,4}?b"
match = re.search(pattern, s)
if match is not None:
print(match.group(0))
patternを r"a{2,4}?" にすると"aa"が返ってくるのに r"a{2,4}?b" だとaの数が4つになるのが気持ち悪いです。
これはPythonのバグなのでしょうか。公式ドキュメントには"少なく 繰り返したものとマッチする"と書かれているのですが。。
バージョンは 2.7.11 です。
(バージョン3ではどのような挙動になるのかも、教えていただけると助かります。)