import re

pattern = r"^\] prima 1 (?!\d+\b)\w+(?: (?!\d+\b)\w+)* 2 (?!\d+\b)\w+(?: (?!\d+\b)\w+)*$"

test_str = ("] prima 1 words 2 words\n"
	"] prima 1 9words 2 words\n"
	"] prima 1 words 2 words 3 words\n\n"
	"] prima 1 words another word that does not start with three or four 2 words that does not start with a number three or four\n"
	"] prima 1 words 2 words 4 words\n\n\n"
	"] prima 1 words 2 words\n"
	"] prima 1 2 2 1\n"
	"] prima 1 words 2 words 3 words")

regex = re.compile(pattern, re.MULTILINE)
matches = regex.findall(test_str)
print(matches)