The quantifier + matches "one or more times". Therefore the second .+ will match any following characters following "to" up to the last digit. Try something like this instead:
m/(\d+)\s+to\s+(\d+)/i;
While the + quantifier is often described as matching "one or more times", this description conflicts with one's inner hacker. As it is greedy, surly it should be written as something along the lines of "matching more or one times".