def METHOD_NAME(self, md):
    """Insert `<ins>test</ins>` tags as `^^test^^` and `<sup>test</sup>` tags as `^test^`."""
    config = self.getConfigs()
    insert = bool(config.get('insert', True))
    superscript = bool(config.get('superscript', True))
    smart = bool(config.get('smart_insert', True))
    md.registerExtension(self)
    escape_chars = []
    if insert or superscript:
        escape_chars.append('^')
    if superscript:
        escape_chars.append(' ')
    util.escape_chars(md, escape_chars)
    caret = None
    md.inlinePatterns.register(SimpleTextInlineProcessor(NOT_CARET), 'not_tilde', 70)
    if insert and superscript:
        caret = CaretSmartProcessor(r'\^') if smart else CaretProcessor(r'\^')
    elif insert:
        caret = CaretSmartInsertProcessor(r'\^') if smart else CaretInsertProcessor(r'\^')
    elif superscript:
        caret = CaretSupProcessor(r'\^')
    if caret is not None:
        md.inlinePatterns.register(caret, "sup_ins", 65)