in reply to Re^4: Splitting on escapable delimiter
in thread Splitting on escapable delimiter

Still don't know why I couldn't get it to realize it had hit end of string

It's seen as somewhat of a bug. It happens when the search expression can match a zero length string. In the followig, the parens indicate what the three passes of your earlier s/// matches:

(a@)(b)()

Or in terms of @- and @+:
pass@-@+
102
223
333

The /g loop ends when the fourth pass matches the same thing as the third pass and pos+1 is beyond the end of the string.