input: 40 x 'a' + '!' budget 1000 ms vulnerable (?:(?:a+)+)+b ABORTED after 1019 ms rewritten a+b 0 ms matches=false possessive (?:a++)++b 7 ms matches=false atomic (?>(?:a+)+)b 0 ms matches=false find() a+b n=5000 139 ms found=false find() a+b n=10000 489 ms found=false find() a+b n=20000 1906 ms found=false find() (?