for (j=i=endMatch?textLen-1:creLength-1; j>=0; i--,j--)
{
while (!MatchChar(text[i],j))
{
//It did not match so let's increment our text index
// by the skip distance
i+=(creLength-j > skip[text[i]]) ?
creLength-j : skip[text[i]] ;
// Set j to last char in pattern
j = creLength-1;
// If we index past the end of the text then no match
// If the match must be at the beginning of the buffer
// and i is greater than the start of text plus the pattern
// length, then there is no match
if (i >= textLen || (beginMatch==true && i-j>lead))
return NULL;
}
}