C-language string matching function, which can be used for saving as needed:
 
 #include <stdio.h> #include <stdlib.h> #include <.h> #include <assert.h> #include <time.h>         badShift[     goodPostfixLastPos(  *pattern,   _break(flag) if(flag){ break;}       flag =       len =      postFix_len = len -      postFix_position =      initStart = pos -      last_start =                last_start = (postFix_position == pos) ?initStart:          postFix_start =         (;last_start>= && postFix_start<len;last_start++,postFix_start++              flag = (pattern[last_start] ==             _break(!             (initStart >=               initStart--                        postFix_position++             postFix_len--         flag?last_start-:-     *calc_goodPostfixShift(  *pattern, *       len =     ( i=;i<len;i++          goodShift[i] = len - goodPostfixLastPos(pattern,i) -             *clac_badcharShift(  *            pLen =      (i = ; i < ; i++          *(badShift+i) =       (pLen !=           *(badShift+(unsigned )*ptrn++) = --           BMSearch(  *str,  *                 len1 =      len2 =        ( i=len2 - ;i<           start =          pos_pattern = len2 -          (;pos_pattern>=;pos_pattern--,start--              (str[start] !=                             (pos_pattern <                start +            (pos_pattern == (len2 -               i +=                        i += goodShift[pos_pattern +          - }