Apparently the split function in Java has changed from Java 7 to Java 8.
( More here:
Why in Java 8 split sometimes removes empty strings at start of result array? )
Some people are suggesting to use split("?!^") instead of split("") (In Java 7).
My main question is how to interpret /(?!^)/? Is there any case where it is different from //?