Регулярное выражение Python для соответствия начала строки или пробела

У меня есть следующая строка

'abc[123]defgh ijk[456]lm no[78] pq'

И я хотел бы извлечь все части, которые находятся либо между началом строки и[ или между пробелами и[, Для данной строки это части'abc', 'ijk', а также'no'.

У меня есть следующее выражение

exp = re.compile(r'\s(.*?)\[')

Но я не могу понять, как добавить начало строки в качестве необязательного выражения. Как мне написать выражение для обоих случаев?

Ответы на вопрос(2)

Ваш ответ на вопрос