regexes are hard, powerful, but hard