Lookbehinds in python cannot be of variable width, so your lookbehind is not valid.
You can use a capture group as a workaround:
c = re.compile(r'(^\d\.\d{1,2})\s+');
for header in ['1.1 Introduction', '1.42 Appendix']:
print re.split(c, header)[1:] # Remove the first element because it's empty
Output:
['1.1', 'Introduction']
['1.42', 'Appendix']