public LinkedList<Integer> searchForPattern(String pattern, String context){
		LinkedList<Integer> foundPatternList = new LinkedList<Integer>();
		int patternLength = pattern.length(); int contextLength = context.length(); int skip; 
		int[] shiftTable = this.BoyerMooreShiftTable(pattern);
		for(int contextIndex = 0; contextIndex < contextLength - patternLength; contextIndex += skip) {
			skip = 0;
			for(int patternIndex = patternLength - 1; patternIndex >= 0; patternIndex--)
				if(!this.compareTwoChars(pattern.charAt(patternIndex), context.charAt(patternIndex+contextIndex))) {
					skip = this.getMaxIntegers(1, (patternIndex - shiftTable[context.charAt(contextIndex+patternIndex)])); break;}
			if(skip == 0) {foundPatternList.add(contextIndex); skip = skip + patternLength -1;}	
		}
		return foundPatternList;
	}