Here is a list of input strings:

```
"collect_project_stage1_20220927_foot60cm_arm70cm_height170cm_......",
"collect_project_version_1_0927_foot60cm_height170cm_......",
"collect_project_ver1_20220927_arm70cm_height170cm_......",

```

These input strings are provided by many different users.
Leading "collect\_" is fixed, and then follows "${project\_version}" which doesn't have hard rule to set this variable, the naming will be very different by different users.
Then, there will be repeating "${part}${length}cm\_.......", but the number of repeatence is not fixed.

I'd like to capture the the variable ${project\_version}.
Then, I try using the following re.match to capture it.

```
re.match(r'collect_(.*)_(?:(?:foot|arm|height)\d+cm_)+.*' , string)

```

However, the result is not as expected.

Is there anyone give me a hint that what's wrong in my regular expression?