WORD_OFFSET_MASK
ret += (word_offset & WORD_OFFSET_MASK) << WORD_OFFSET_SHIFT;
ret = (pattern >> WORD_OFFSET_SHIFT) & WORD_OFFSET_MASK;