Por muito tempo eu sofri precisando disso e nunca conseguia uma tag que me desse como resultado de uma regex todo o conteúdo entre duas palavras, apenas até a primeira ocorrência dela.
<table>
    <tr>
        <td>
            conteúdo que eu quero
        </td>
        <td>
            bláblábláblábláblábláblábláblá
            bláblábláblábláblábláblábláblá
            bláblábláblábláblábláblábláblá
        </td>
    </tr>
</table>
No exemplo acima eu quero obter todo conteúdo entre as tags table, mas com uma regex comum
(?s).* todo o blábláblá seguinte também será retornado em apenas um resultado.
Resultado:
conteúdo que eu quero
bláblábláblábláblábláblábláblá
bláblábláblábláblábláblábláblá
bláblábláblábláblábláblábláblá
Com uma simples modificação na expressão anterior:
(?s).*? ela retornará dois resultados, o primeiro será o desejado e o segundo poderia ser descartado.
Resultado parte 1:
conteúdo que eu quero
Resultado parte 2:
bláblábláblábláblábláblábláblá
bláblábláblábláblábláblábláblá
bláblábláblábláblábláblábláblá