DOC: fix return type of str.extract
- [ ] closes #xxxx
- [ ] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/22562?src=pr&el=h1) Report
> Merging [#22562](https://codecov.io/gh/pandas-dev/pandas/pull/22562?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/98fb53ca2d64658749e9f182b391002ef3500c1b?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/22562/graphs/tree.svg?width=650&token=eZ4WkYLtcO&height=150&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/22562?src=pr&el=tree)

```diff
@@           Coverage Diff           @@
##           master   #22562   +/-   ##
=======================================
  Coverage   92.04%   92.04%           
=======================================
  Files         169      169           
  Lines       50787    50787           
=======================================
  Hits        46745    46745           
  Misses       4042     4042
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.45% <ø> (ø)` | :arrow_up: |
| #single | `42.29% <ø> (ø)` | :arrow_up: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/22562?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/strings.py](https://codecov.io/gh/pandas-dev/pandas/pull/22562/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc3RyaW5ncy5weQ==) | `98.63% <ø> (ø)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/22562?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/22562?src=pr&el=footer). Last update [98fb53c...acd9147](https://codecov.io/gh/pandas-dev/pandas/pull/22562?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
 Thanks for the changes @zhujun98 

No need to address the comments in a PR in separate commits, that's rarely done. Feel free to fix all them in a single commit, unless separating them adds value to you.

Can you merge master in your branch and push it, so the CI runs again, and hopefully this time all is green please. Thanks for the explanation @datapythonista 

I am a little bit confused about the next step. To trigger the CI again, do you mean 'git merge upstream/master' or 'git rebase upstream/master'?

By the way, I checked other PRs (e.g. #22571) and it seems there is some issue with Anaconda now. Anaconda is back to normal, so I restarted all of your failed builds.  In terms of re-triggering builds, you have two options:

* Ping us: then we can restart the failing builds instead of re-triggering the entire build.
* "Redo" your last commit as follows:

~~~
git commit --amend
git push -f
~~~ Thank you for the information @gfyoung!

Finally we got all the green lights @datapythonista!  Thank you very much for guiding me through the whole workflow of  contributing to Pandas docstrings! I really enjoyed it Another option to what @gfyoung said is `git fetch upstream && git merge upstream/master`, which is what I initially proposed. As pandas is quite active it rarely won't have anything to merge, and it has the advantage that if there is any conflict, you'll detect it directly.

Changes lgtm, but will let someone else merge it, so we have an extra pair of eyes on the changes.