The same regexr.com also says on the last line:Damn - I really tried to find such an explanation but e.g. regexr.com gives this explanation:
. Dot. Matches any character except line breaks.
* Quantifier. Match 0 or more of the preceding token.
? Lazy. Makes the preceding quantifier lazy, causing it to match as few characters as possible.
which is the case here, see the beginning of the pattern.This behaviour is reversed by the ungreedy (U) flag/modifier.
In other words, the (?U) ungreedy flag at the start (which already makes the pattern lazy and match as few characters as possible) makes the ? mean the opposite to the "standard" behavior (so .*? will be greedy and match as many characters as possible in this case). This is supported by the entry for Flags > U, which says:
Technically, the .*? locally inverted the (standard greedy behavior) overall inversion by (?U) at the start, if it makes sense.Makes quantifiers ungreedy (lazy) by default. Quantifiers followed by ? will become greedy.

Statistics: Posted by Yincognito — Yesterday, 8:52 pm