@
buran,Thanks! understood totally.
if anyone also have the same question, I hope this post will help to understand what's the real meaning of '?'
summary:
'?' quantifier matches between zero and one times, as many times as possible. In other words, there are two options, 0 times or 1 times; '?' quantifier selects '1 times', not '0 times', it means '?' is greedy, it wants more. I think that's the reason it's called greedy.
'??' quantifier matches between zero and one times, as few times as possible. In other words, '??' quantifier selects '0 times'.I think that's the reason it's called lazy or non-greedy.