static class FNonMarkedAsList extends FunctionImpl { public O process(Object _in) { String in = cast _in; L m = getFindMarkers2(in); new L list; for (int i = 0; i < m.size(); i += 2) { int from = i == 0 ? 0 : m.get(i-1); int to = i == m.size()-1 ? in.length() : m.get(i); if (to > from) list.add(in.substring(from, to)); } ret list; } static L getFindMarkers2(String s) { L l = new ArrayList(); int i = 0; while (i < s.length()) { int j = s.indexOf("[[", i); if (j < 0) break; int k = s.indexOf("]]", j+2); if (k < 0) break; l.add(j); l.add(k+2); i = k+2; } return l; } }