Not sure what you mean about list assignment; the difference is that a third parameter of -1 makes split keep trailing empty strings where by default it discards them.
In your example, split returns 13 empty strings (one from before the first character of $ip, one for each position between characters, and one from after the last character.)