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