This question has been revised so many times. Anyways think about greedy. Who, one is greedy can't satisfy its hunger from the last index, it goes for one more. You should know "*" means 0 or more. So therefore it goes one more chance and it is never wrong, it is all about greedy.
Think about it, use "+", "?" and polish your regex skill by repetitive change and its effect.