| # This was taken from http://python.org/sf/1541697 | |
| # It's not technically a crasher. It may not even truly be infinite, | |
| # however, I haven't waited a long time to see the result. It takes | |
| # 100% of CPU while running this and should be fixed. | |
| import re | |
| starttag = re.compile(r'<[a-zA-Z][-_.:a-zA-Z0-9]*\s*(' | |
| r'\s*([a-zA-Z_][-:.a-zA-Z_0-9]*)(\s*=\s*' | |
| r'(\'[^\']*\'|"[^"]*"|[-a-zA-Z0-9./,:;+*%?!&$\(\)_#=~@]' | |
| r'[][\-a-zA-Z0-9./,:;+*%?!&$\(\)_#=~\'"@]*(?=[\s>/<])))?' | |
| r')*\s*/?\s*(?=[<>])') | |
| if __name__ == '__main__': | |
| foo = '<table cellspacing="0" cellpadding="0" style="border-collapse' | |
| starttag.match(foo) |