Or you could use "zero-width positive lookahead"  /(?=)/ with -? for 
possible negative numbers:

s = "db file parallel -write         8816         391    -25.49"
p s.split(/\s+(?=-?\d)/)

#=> ["db file parallel -write", "8816", "391", "-25.49"]