ENH: add regex parameter to .loc
- [x] closes #26642
- [x] xref #27340
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Adds a ``regex`` parameter to ``NDFrame.loc.__call__``, so we can now do:

```python
>>> df = pd.DataFrame(1, index=["A", "AB", "BC", "CD"], columns=["CD", "BC", "AB", "A"])
>>> df.loc(regex=True)["B", "B"]
    BC  AB
AB   1   1
BC   1   1
```

This is intended to be followed up by deprecating ``NDFrame.filter``.

This implementation does not allow setting values using ``regex=True``, as the most urgent motivation is to get a replacement for ``NDFrame.filter``. Setting values can come later, even after version 1.0.
