変数aと変数bの間に含まれている文字列を最初にマッチしたところで取り出したいのですが、うまくいきません。以下のように書いてみたのですが最後の変数bまでの範囲を取得してしまい、期待する出力を得られませんでした。どうすれば解決するでしょうか。

a = '<a>'
b = '<b>'

text = '<a>bbb<b>ccc<b>'
r = re.search(r'%s(.*)?%s'%(a,b), text)

print(r.group(1))

出力結果

bbb<b>ccc

期待する出力

bbb