### The function "lowerUTF8" handles some sequences of cyrillic characters incorrectly

How to reproduce:
ClickHouse server version >=22.9

execute: 
```SELECT lowerUTF8('АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ')```

this will works fine and return correct result:
> абвгдеёжзийклмнопрстуфхцчшщъыьэюя

but executing this:
```SELECT lowerUTF8('КВ АМ И СЖ')```

will result:
> кв ам и сЖ

https://fiddle.clickhouse.com/34a76c87-4dfa-4fc8-808f-376b4b7a183b

last symbol "Ж" will not convert to lower case "ж"

another example:
```SELECT lowerUTF8('ЗАДАЧИ КПЗ')```

this will result:
> задачи кПз

https://fiddle.clickhouse.com/e3c6650a-52ea-4819-ae72-fad8c838d62c

penultimate symbol "П" will not convert to lower case "п"



{
        if (src[0] <= ascii_upper_bound)
        {
            if (*src >= not_case_lower_bound && *src <= not_case_upper_bound)
                st++ = *src++ ^ flip_case_mask;
            else
                st++ = *src++;
        }
        else if (src + 1 < src_end
            && ((src[0] == 0xD0u && (src[1] >= 0x80u && src[1] <= 0xBFu)) || (src[0] == 0xD1u && (src[1] >= 0x80u && src[1] <= 0x9Fu))))
        {
            cyrillic_to_case(src, dst);
        }
        else if (src + 1 < src_end && src[0] == 0xC2u)
        {
            /// Punctuation U+0080 - U+00BF, UTF-8: C2 80 - C2 BF
            st++ = *src++;
            st++ = *src++;
        }
        else if (src + 2 < src_end && src[0] == 0xE2u)
        {
            /// Characters U+2000 - U+2FFF, UTF-8: E2 80 80 - E2 BF BF
            st++ = *src++;
            st++ = *src++;
            st++ = *src++;
        }
        else