New GitHub issue #121678 from HarryLHW:<br>
<hr>
<pre>
# Bug report
### Bug description:
The character `İ` (`\u0130`, LATIN CAPITAL LETTER I WITH DOT ABOVE) can (full)match `i` or `I` with `re.IGNORECASE`.
```python
>>> '\u0130'
'İ'
>>> '\u0130'.casefold()
'i̇'
>>> '\u0130'.lower()
'i̇'
>>> list(map(ord, '\u0130'.lower()))
[105, 775]
>>> re.fullmatch('\u0130', chr(105), re.IGNORECASE)
<re.Match object; span=(0, 1), match='i'>
>>>
```
The character `ß` (`\u00df`, LATIN SMALL LETTER SHARP S) cannot match `ss`, `SS`, `s`, or `S` with `re.IGNORECASE`.
```python
>>> '\u00df'
'ß'
>>> '\u00df'.casefold()
'ss'
>>> '\u00df'.upper()
'SS'
>>> list(map(ord, '\u00df'.upper()))
[83, 83]
>>> re.search('\u00df', chr(83), re.IGNORECASE)
>>> re.search('\u00df', 'ss', re.IGNORECASE)
>>> re.search('\u00df', 'SS', re.IGNORECASE)
>>> re.search('\u00df', 's', re.IGNORECASE)
>>> re.search('\u00df', 'S', re.IGNORECASE)
>>>
```
There are many other characters (such as `ß`) whose `.upper()` contains 2 or more characters, and none of them can make a successful match or search with `re.IGNORECASE`. However, `İ` is the only character whose `.lower()` contains 2 or more characters.
### CPython versions tested on:
3.13, CPython main branch
### Operating systems tested on:
macOS
</pre>
<hr>
<a href="https://github.com/python/cpython/issues/121678">View on GitHub</a>
<p>Labels: type-bug</p>
<p>Assignee: </p>