I'm not sure how the benchmarks would actually be, I'm
speaking more from my understanding of other people's explanations of how they work (probably wrong).
- \[.*?\] - starting at the first
[ look at up all sizes of .*? from the longest
to the shortest, then for which ones are followed by a ], choose the
shortest one.
- \[[^\]]*\] - starting at the first [
search through all possible [^\]]* from shortest to
longest, until we find an ], at that point choose the previous one.
Or something like that. I think I find the second logic to make more
sense to me.
Update: and the other point is I'm suggesting
avoiding the habit of overusing the dot, which can cause
problems such as were addressed in the thread I linked.