nested tags parser using recursive regular expressions