class_docstr: For Python 2.x source code.
  
  .. versionchanged:: 2.5
     This class has been renamed from ``PythonLexer``.  ``PythonLexer`` now
     refers to the Python 3 variant.  File name patterns like ``*.py`` have
     been moved to Python 3 as well.
code: def innerstring_rules(ttype):
      return [
          # the old style '%s' % (...) string formatting
          (
              r"%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?"
              "[hlL]?[E-GXc-giorsux%]",
              String.Interpol,
          ),
          # backslashes, quotes and formatting signs must be parsed one at a time
          (r'[^\\\'"%\n]+', ttype),
          (r'[\'"\\]', ttype),
          # unhandled string formatting sign
          (r"%", ttype),
          # newlines are an error (use "nl" state)
      ]
  
imports: import re
  import keyword
  from pygments.lexer import DelegatingLexer, Lexer, RegexLexer, include, bygroups, using, default, words, combined, do_insertions, this, line_re
  from pygments.util import get_bool_opt, shebang_matches
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, Number, Punctuation, Generic, Other, Error, Whitespace
  from pygments import unistring
label_desc: Use image node_id 1 for calling the Python2Lexer obj's underlying member method code with example usage: obj.innerstring_rules(ttype) and returns: list