Using core.clj now
Pattern matching with lookahead to handle overlaps