New GitHub issue #118701 from zhukoff-pavel:<br>

<hr>

<pre>
# Bug report

### Bug description:

# Prerequisites

Hello! I have a structure of directories as follows: 
```
% tree
.
└── a
    └── b
        └── c
            └── d
                └── e
```

# Problem

Here `Pathlib.PurePath` `a/b/c/d/e` won't match with `**/b/c/**`, but will match with `**/c/d/**`:

```python
Python 3.12.3 (main, Apr  9 2024, 08:09:14) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pathlib
>>> path = pathlib.PurePath("a/b/c/d/e")
>>> path.match("**/b/c/**")
False
>>> path.match("**/c/d/**")
True
```

However, `glob` on this structure yields different results:
```python
>>> import glob
>>> glob.glob("**/b/c/**")
['a/b/c/d']
>>> glob.glob("**/c/d/**")
[]
>>> glob.glob("**/b/c/**", recursive=True)
['a/b/c/', 'a/b/c/d', 'a/b/c/d/e']
>>> glob.glob("**/c/d/**", recursive=True)
['a/b/c/d/', 'a/b/c/d/e']
```
i.e. `**/b/c/**` and `**/c/d/**` will match to the named path only in recursive mode.

# Ideas

I'd expect pathlib.match to behave more like recursive `glob.glob` (as in prior code block) or `pathlib.Path.glob`:
```python
>>> sorted(pathlib.Path(".").glob("**/b/c/**"))
[PosixPath('a/b/c'), PosixPath('a/b/c/d'), PosixPath('a/b/c/d/e')]
>>> sorted(pathlib.Path(".").glob("**/c/d/**"))
[PosixPath('a/b/c/d'), PosixPath('a/b/c/d/e')]
```


### CPython versions tested on:

3.10, 3.12

### Operating systems tested on:

Linux, macOS
</pre>

<hr>

<a href="https://github.com/python/cpython/issues/118701">View on GitHub</a>
<p>Labels: type-bug</p>
<p>Assignee: </p>