Pandas version checks
-
[x] I have checked that this issue has not already been reported.
-
[x] I have confirmed this bug exists on the latest version of pandas.
-
[x] I have confirmed this bug exists on the main branch of pandas.
Reproducible Example
>>> import pandas as pd
>>> import re
>>> DATA = ["applep", "bananap", "Cherryp", "DATEp", "eGGpLANTp", "123p", "23.45p"]
>>> s = pd.Series(DATA)
>>> s.str.contains(re.compile(r"a"), regex=True)
0 True
1 True
2 False
3 False
4 False
5 False
6 False
dtype: bool
>>> pd.options.future.infer_string=True
>>> s = pd.Series(DATA)
>>> s.dtype
str
>>> s.str.contains(re.compile(r"a"), regex=True)
Issue Description
The last line fails with:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Condadirs\envs\pandasstubs\lib\site-packages\pandas\core\strings\accessor.py", line 140, in wrapper
return func(self, *args, **kwargs)
File "C:\Condadirs\envs\pandasstubs\lib\site-packages\pandas\core\strings\accessor.py", line 1346, in contains
result = self._data.array._str_contains(pat, case, flags, na, regex)
File "C:\Condadirs\envs\pandasstubs\lib\site-packages\pandas\core\arrays\string_arrow.py", line 359, in _str_contains
return ArrowStringArrayMixin._str_contains(self, pat, case, flags, na, regex)
File "C:\Condadirs\envs\pandasstubs\lib\site-packages\pandas\core\arrays\_arrow_string_mixins.py", line 299, in _str_contains
result = pa_contains(self._pa_array, pat, ignore_case=not case)
File "C:\Condadirs\envs\pandasstubs\lib\site-packages\pyarrow\compute.py", line 265, in wrapper
options = _handle_options(func_name, options_class, options,
File "C:\Condadirs\envs\pandasstubs\lib\site-packages\pyarrow\compute.py", line 228, in _handle_options
return options_class(*args, **kwargs)
File "pyarrow\\_compute.pyx", line 1121, in pyarrow._compute.MatchSubstringOptions.__init__
File "pyarrow\\_compute.pyx", line 1104, in pyarrow._compute._MatchSubstringOptions._set_options
File "<stringsource>", line 15, in string.from_py.__pyx_convert_string_from_py_6libcpp_6string_std__in_string
TypeError: expected bytes, re.Pattern found
Expected Behavior
No failure.
Installed Versions
INSTALLED VERSIONS
------------------
commit : c888af6d0bb674932007623c0867e1fbd4bdc2c6
python : 3.10.14
python-bits : 64
OS : Windows
OS-release : 10
Version : 10.0.26100
machine : AMD64
processor : Intel64 Family 6 Model 183 Stepping 1, GenuineIntel
byteorder : little
LC_ALL : None
LANG : None
LOCALE : English_United States.1252
pandas : 2.3.1
numpy : 2.2.6
pytz : 2025.2
dateutil : 2.9.0.post0
pip : 24.2
Cython : None
sphinx : None
IPython : None
adbc-driver-postgresql: None
adbc-driver-sqlite : None
bs4 : 4.13.4
blosc : None
bottleneck : None
dataframe-api-compat : None
fastparquet : None
fsspec : None
html5lib : 1.1
hypothesis : None
gcsfs : None
jinja2 : 3.1.6
lxml.etree : 6.0.0
matplotlib : 3.10.3
numba : None
numexpr : 2.11.0
odfpy : None
openpyxl : 3.1.5
pandas_gbq : None
psycopg2 : None
pymysql : None
pyarrow : 21.0.0
pyreadstat : 1.3.0
pytest : 8.4.1
python-calamine : None
pyxlsb : 1.0.10
s3fs : None
scipy : 1.15.3
sqlalchemy : 2.0.41
tables : 3.10.1
tabulate : 0.9.0
xarray : 2025.6.1
xlrd : 2.0.2
xlsxwriter : 3.2.5
zstandard : None
tzdata : 2025.2
qtpy : None
pyqt5 : None