/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		String rx = "(?sm)^sufixpart$(.*?)^end$";
		String s = "invalidsufix\nsubadatax\nsufixpart\nsubdata1\nsomerandomn\nsubdata2\nsubdatan\nend\ninvalidsufix\nsubadatax\nsufixpart\nsubdata001\nsomerandomn\nsubdata002\nsubdata00n\nend";
		Pattern pattern_outer = Pattern.compile(rx);
		Pattern pattern_token = Pattern.compile("(?m)^subdata\\S*$");
		Matcher matcher = pattern_outer.matcher(s);
		List<List<String>> res = new ArrayList<>();
		while (matcher.find()){
			List<String> lst = new ArrayList<>();
			if (!matcher.group(1).isEmpty()) {
				Matcher m = pattern_token.matcher(matcher.group(1));
				while (m.find()) {
					lst.add(m.group(0));
				}
			}
			res.add(lst);
		} 
		System.out.println(res); 
	}
}