What is wrong with std::string::substr()?  Should substr() be changed to allow missing features like negative index for from-end?

I suppose it would just be extended syntax / alternative signature on the string.operator[]() taking a string with textual slicing operators.  I am not fond of numbers passed in text, being a speed obsessed power user!  Since Python is interpreted or JIT compiled, parse cost is less a concern there.  Could the compiler digest the strings, when constant, to save parsing integers from ASCII at run time, maybe making it into a call to string::substr()?