Identifying software and version range in a sentence
If all your sentences are in the following format(atleast that what I assume), you can parse it with regex instead.

`([A-Z][a-z]+)\s+(\d+\.\d+)(?:\s+before\s+)(\d+\.\d+)`


Using this pattern with the given sentence finds all the software and the versions in it. re.findall(pattern, sentence) will give you a list of tuples like this
[('Firefox', '2.4', '2.5'), ('Safari', '6.0', '6.8')]