Exercise 2 solution import re html = '

Hello big and small world, end

' print(re.findall(r".*", html)) print(re.findall(r"([^<]*)", html)) # ['big and small world, end'] # ['big', 'small', 'end'] (All lines were run and printed exactly what is shown.) Explanation: the greedy .* runs to the last closing tag it can find, so the three items come back as one long match. The negated class [^<]* only allows characters that are not an opening angle bracket, so each match must stop at the first closing tag, and the group returns just the words.