With sed you can substitute by occurrence - so you just ask for the fifth tab delimited field and for any numbers within it by ruling out other possible matches:
sed 's/[^\t0-9]*\([0-9]*\)[^\t]*/\1/5' <infile
(Beware though that the \t escape is not a standard one - especially in the [bracket-expression]. You should probably use a real <<!>tab> in its place.)
After doing a copy to my clipboard of the other examples here I did:
xsel -bo | unexpand -a | sed ...
...to makes sure I was working with tabs. And it printed...
1 2 3 4 2458 6 a b c d 45 a1 b2 c3 d4 78 f6
...which just isolates the first integer in the 5th column. I'm not sure if that's what you want, though. If you just want the first integer from the fifth column on a line all its own, that's far easier (and much faster).
<infile cut -f5 | tr -cs '0-9\n' \\t |cut -f2
...which first cuts the fifth <<!>tab>-delimited (cut is <<!>tab>-delimited by default, but that can be changed with -d) field of data per line in full (to avoid issues which may be caused by multiple integers per field) and then translates into a single <<!>tab> every -squeezed sequence of characters -complementary to the set \newlines and standard digits ([0-9] are required to be recognized as [:digit:]s in all locales - some other locale-specific numeral sets may or may not also be included in the [:digit:] class but will not be in [0-9]*).
This means that in the output the first integer will be the second field - because there's a <<!>tab> at the head of each line. So I just cut that out, too.
2458 45 78