it would seem that a typical use case would be non-greedy.
I want to make it clear that this is wrong, unless "typical use case" means HTML-hacking.
An easy example are lexical analysers for programming languages. You simply don't want
foo = 42
to be interpreted as 3 variables, followed by an equal sign, followed by 2 numbers. On the contrary, typically you expect your parser to consider the longest possible matches.
Before the advent of HTML, we elder ones have lived for decades with greedy regular expressions, and we did just fine. Even today I do not use non-greedy ones in 99% of all cases, admittedly because I am too lazy to look up the syntax, but also because the occasions are seldom where you couldn't just write a well terminated greedy one. For example, to match a string:
"(\\"|[^"])*"