To make the .+ in your grep -Po command non-greedy (i.e., match as little as possible), you need to add a ? after the + quantifier.
Solution
Change your pattern to:
grep -Po '.+?(?=\t+zip$)' file
.+? means: match one or more of any character, as few times as possible (non-greedy).
Explanation
.+ is greedy by default, so it will match as much as possible.
.+? is non-greedy, so it will match as little as possible before the lookahead (?=\t+zip$) is satisfied.
This ensures that the match stops at the first occurrence of \t+zip$ rather than the last.