Regular expression with cucumber doesn't match the string

I'm writing in Java and using cucumber with Eclipse to search for specific words. The requirements are as below:

// Pattern distinguished.
// Should match the string starting with:test_splitter arg
// Where should match the following positive examples
// and not negative examples. Note: any string not in the
// positive or negative examples can be accepted or rejected.

The positive words are (spill, Sponge, tap, rebuild) and negative ones are (si, egregious, Foul, Test, top, ta)

by writing the regular expression in the Stepdefs.java file, this is what I wrote

@When("^test_splitter (?=.*?\bspill\b)(?=.*?\bSponge\b)(?=.*?\btap\b)(?=.*?\brebuilld\b)((?!si|egregious|Foul|Test|ta).)*$")
public void test_splitter(String match) throws Throwable {
    System.out.println("test_splitter true for: " + match);
}

now when I write tests (in Gherkin language) for this method in the Test.feature file the tests fail, which should all pass )

Scenario: test regular expressions that should pass
  When test_splitter spill
  When test_splitter Sponge
  When test_splitter tap
  When test_splitter rebuild
  When test_splitter2 spill
  When test_splitter2 Sponge
  When test_splitter2 tap
  When test_splitter2 rebuild

What is the problem with my regex? How can I write the regex in a better way?