rewrote regression matching code to dramatically improve performance and reduce heap usage. now result checking is as lazy as possible and uses very efficient, predicate-specialized algorithms. regression tests now accept a required predicate field, which is one of: matches, contains, containsOnly, doesNotContain, or startsWith. also fixes #324, fixes #365, fixes #343.