Split string at every position where an upper-case word starts June 19, 2023 by Tarik I suggest l = re.compile("(?<!^)\s+(?=[A-Z])(?!.\s)").split(s) Check this demo.