It's weird that this is just a side-effect of the way strtol works, but there's no way (that I can figure out) to get + or - involved.
127.256 is valid, and would be equivalent to 127.0.1.0. The last integer can be up to 16777215 (2²⁴-1).
Similarly, if you instead include three groups of integers, the first two represents one octet each, and the last represents two. 127.2.256 is equivalent to 127.2.1.0.