.*? means match the smallest number -- a non-greedy match. Whereas .* means match the largest number -- a greedy match. Changing the * to a + only changes the minimum match amount (0 to 1). As a side note you can say .{0,} as the equivalent to * and {1,} as + (and, for example, .{3,5} would match 3 to 5 characters).
Gnight,
Gryn