С некоторым выражением, похожим на
^[a-z]\s"\w+"\s(?:\(\d+\s*,\d+\s*\)\s*){3}$
или с меньшими границами, например,
^[a-z]\s"\w+"\s+(?:\(\s*\d+\s*,\s*\d+\s*\)\s*){3}$
, вы можете сделать это.
Тест
import re
string = """
a "name" (100,20) (7,8) (10,12)
b "some_other_name_1" ( 100, 20) (7, 8) (10, 12)
Z b "some_other_name_1" ( 100, 20) (7, 8) (10, 12)
"""
expression = r'^[a-z]\s"\w+"\s+(?:\(\s*\d+\s*,\s*\d+\s*\)\s*){3}$'
print(re.findall(expression, string, re.M))
Вывод
['a "name" (100,20) (7,8) (10,12)', 'b "some_other_name_1" ( 100, 20) (7, 8) (10, 12)']
Если вы хотите упростить / изменить / исследовать выражение, оно объяснено наверхняя правая панель regex101.com .Если хотите, вы также можете посмотреть в этой ссылке , как она будет сопоставляться с некоторыми примерами ввода.