The other day while working on a project based with Symfony where acceptance tests are made with Behat I faced a pretty weird error hard to debug:

Warning: preg_match(): Compilation failed: two named subpatterns have the same name (PCRE2_DUPNAMES not set) at offset 219

I got this after adding a new Behat step like this:

@Then the JSON response node :jsonNode should be between :expectedMinValue and :expectedMaxValue

After trying many things I finally got a solution even though I don’t quite understand why happens. I guess it’s related to how Behat treats the variables internally so after specifying the type everything worked fine.

Here the solution:

@Then /^the JSON response node "([^"]*)" should be between (\d+) and (\d+)$/