Вы можете сделать (?s)start.*?(?=end|start)(?:end)?, а затем отфильтровать все, не заканчивающееся «end».
(?s)start.*?(?=end|start)(?:end)?