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