Frontend rule that excepts any but certain parts, let other catch remaining

I have two separate docker projects. Each connected through a single docker network.
Consider project1 to be our old project, and project2 our new one.

Project2 will only contain certain parts/urls that are renewed.

At the moment we have the following setup:

dev.project.nl/new will be caught by our new docker project so the docker-compose.yaml contains this

- "traefik.project2.frontend_platform.rule=Host:dev.project.nl; PathPrefix: /new"

So all traffic that goes through /new now is handled by project2

Project1 has the following rule:

- "traefik.project1.frontend_platform.rule=Host:dev.project.nl;"

So obviously it will handle everything from /* except /new.

What I want to achieve is that project2 urls could progressively mapped to the root domain.

So take the following project1 url /project/1. Right now, to test it on the new platform we need to use /new/project1 but I would like to exclude handling from project1 so that /project/1 goes through our new setup.

I have tried the following in project in:

- "traefik.project1.frontend.rule=PathPrefix: /,^(?!.*product).*$$; Host:dev.project1.nl,dev"

The regular expression matches everything except urls containing product. Well at least it should. But it does not work.

In the end, the idea is that we can test the integration with the help of a cookie (or something). I have found out I can toggle a rule using:

HeadersRegexp:Cookie, monkey;

So whenever that cookie is set I should see X.

But how to do the exlcusion/inclusion properly?

To summarize this would be the ideal end situation:

/page1 --> project1
/another-url/something --> project1
/product/1 --> project1 when Cookie is not set
/product/1 --> project2 when Cookie is set