parsing and self-matching