Самое простое решение состоит в следующем:
Вы идете в цикле по исходной строке и сравниваете текущий символ с первым символом из Pattern. Как только они совпали(допустим в позиции i), вы запускаете цикл по pattern и проверяете str[i+offset] на равенство текущему символу pattern, где offset текущее смещение в pattern. Если какой-то из символов не совпадает, то вы возвращаетесь в первый цикл и продолжаете работу с символа str[i+1].