Operadores Regex não gananciosos

Imagine, você precisa combinar rapidamente um texto dentro de <b>tags. E você não quer carregar nenhuma biblioteca de análise XML / HTML.

Eu primeiro pensei em:

str = "Lorem <b>ipsum</b> dolor sit <b>amet</b>, consectetur adipiscing elit."
str
.scan /<b>.*</b>/
=> ["<b>ipsum</b> dolor sit <b>amet</b>"]

que combinam com tudo do primeiro <b>ao último </b>.
E não é isso que eu quero.

Isso acontece porque o operador estrela é ganancioso por padrão.
Para torná-lo desagradável (ou relutante), basta adicionar um ponto de interrogação atrás:

str.scan /<b>.*?</b>/
=> ["<b>ipsum</b>", "<b>amet</b>"]

Isso é melhor.
Você também pode aplicar isso aos operadores: +, {} e o próprio ponto de interrogação.