private List<String> getPatterns(String string) {

		if (isValid(string)) {
			List<String> patternList = new ArrayList<String>();			
			
			for (int i=0; i<string.length()-1; i++) {
				if (string.charAt(i) == Pattern.ANY_CHAR && string.charAt(i+1) == Pattern.ANY_CHAR) {
					String candidateString = string.substring(0,i);
					if (isValid(candidateString)) { // This shouldn't be necesary (assert there is at least a non-Pattern.ANY_CHAR character in string before, so we don't have to check this for each substring?)
						patternList.add(candidateString);
					}
				}
			}
			patternList.add(string);
			return patternList;
		} else {
			return null;
		}
	}