Fix #1171: Split: Sometimes remove leading empty match

The conditions were determined experimentally since the JavaDoc is
note precise enough.
Forgive my lack of tact here but there's no way this is the correct logic. It should be:
1. r = input
2. if r matches, store left-match in result-array, set r to right-match
3. loop until r empty or no match.
4. store r in result-array