public List<AbstractInsnNode[][]> findAllGroups(String regex) {
		List<AbstractInsnNode[][]> results = new ArrayList<AbstractInsnNode[][]>();
		try {
			Matcher regexMatcher = Pattern.compile(processRegex(regex),
					Pattern.MULTILINE).matcher(representation);
			if (regexMatcher.find()) {
				AbstractInsnNode[][] result = new AbstractInsnNode[regexMatcher
						.groupCount() + 1][0];
				for (int i = 0; i <= regexMatcher.groupCount(); i++)
					result[i] = makeResult(regexMatcher.start(i),
							regexMatcher.end(i));
				results.add(result);
			}
		} catch (PatternSyntaxException ex) {
			ex.printStackTrace();
		}
		return results;
	}