Multiple conditions with negative match

Hello,

I want to make sure that a slack notification runs only under a specific branch pattern (works) and only when the a parameter is set to anything other than noop (text). I have the following condition that doesn’t work:

      - when:
          condition:
            and:
              - matches: { pattern: "^dev/.+$", value: <<pipeline.git.branch>> }
              - not:
                  equal: [<<parameters.what>>, "noop"]

I tested several scenarios, used matches instead of equal in case the there was a space or escape. When I debug the <<parameteres.what>> value, I get the expected value.

Any ideas?