The logic of split does not need to be special for this to work. These are real empty patterns and split understand they are meant to split characters as they return empty delimiters. But you were saying that the same is not automatic for patterns equivalente to /^/. Sorry for the confusion I made.