*/
    void wordExtendBackwards( Variant v )
    {
        char pc;
        int index = v.startIndex;
        int offset = v.startOffset;
        Pair p = pairs.get( index );
        do
        {
            offset--;
            while ( offset < 0 || p.length() == 0 )
            {
                index = previous( index,(short)v.versions.nextSetBit(1) );
                if ( index >= 0 )
                {
                    p = pairs.get( index );
                    offset = p.length()-1;
                }
                else
                    break;
            }
            // offset points to the previous character
            pc = p.getChars()[offset];
            if ( Character.isWhitespace((char)pc)||isPunctuation(pc) )
                break;
            else
            {
                v.startIndex = index;
                v.startOffset = offset;
                v.length++;
            }
        }
        while ( index >= 0 );
    }