I built Sift because maintaining raw Regular Expressions in Java is notoriously error-prone and hard to read.
Sift is a fluent DSL that guarantees valid regex syntax at compile time using a strict Type-State machine. Your IDE auto-completion only suggests methods that are syntactically valid at that specific step.
It features immutable thread-safe builders, modular "LEGO-style" composition for reusable patterns, and lazy validation for backreferences across disconnected blocks.
I'd love your feedback on the API design and the state-machine architecture!