BUG: replace with regex raising for StringDType
- [x] closes #35977, closes #41333
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry

2 separate issues at play here - regex was ignored in #41333 (specific to the `replace_list` path) but then if `replace_regex` was hit with anything but an object type that would just raise.

> Thanks @mzeitlin11 generally lgtm for the fix in hand, although we should probably be dispatching to the `_str_replace` method on the EA.

Agreed, but I think that decision could be handled independently of fixing this. There's some additional complexity because I think `_str_replace` assumes replacement occurs with a string, which is not guaranteed by the general replace function (though it would be a strange thing to do).  > Agreed, but I think that decision could be handled independently of fixing this.

sure. thanks @mzeitlin11 very nice!