Вы не можете просто запустить несколько сплитов или вы можете получить неверный результат.Я бы, наверное, использовал s.split (pattern, 2) ...
public static Vector<String> getDelims( String s, String pattern )
{
String[] items = s.split( pattern, 2 );
if( items.length == 1 ) return new Vector<String>();
String delim = s.substring( items[0].length());
delim = delim.substring(0, delim.length() - items[1].length() );
Vector<String> ret = getDelims(items[1], pattern);
ret.add(0, delim);
return ret;
}