Java Pattern filter

Changes can be filtered to not trigger a build; if none of the files within a change match a Java pattern (regular expression) listed, the build is filtered.

For example, with the following regular expressions:
//depot/main/tests.*
//depot/main/src/.*\.cpp
//depot/main/build/.*(?:\.rb|\.py|\.bat|Jenkinsfile)
//depot/main/lib/(?!Lib1|Lib2).*

Case A (change will not be filtered, as these files match our first pattern on "tests"):

Files:

Case B (Be careful with incomplete file paths! Change will NOT be filtered,
as this file matches a pattern which was likely intended as describing a "tests/" directory.)

Files:

Case C (change will NOT be filtered, as all files match our fourth pattern looking for script files in 'build/'):

Files:

Case D (change will be filtered, as no file matches our second pattern for ".cpp" files under "main/src"):

Files:

Case E (change will be filtered. Lib1 is included in a negative lookahead, and thus is excluded.)

Files: