class_docstr: The scansion symbols used can be configured by passing a suitable constants class to
  the constructor.
docstr: Erase a section of a line, matching on a regex, pushing in a quantity of blank spaces,
  and jumping forward with an offset if necessary.
  If the elided vowel was strong, the vowel merged with takes on the stress.
  
  :param line:
  :param regexp:
  :param quantity:
  :param offset:
  :return:
  
  >>> print(VerseScanner().elide("uvae avaritia", r"[e]\s*[a]"))
  uv   āvaritia
  >>> print(VerseScanner().elide("mare avaritia", r"[e]\s*[a]"))
  mar  avaritia
docstr_tok: ["Erase","a","section","of","a","line",",","matching","on","a","regex",",","pushing","in","a","quantity","of","blank","spaces",",","and","jumping","forward","with","an","offset","if","necessary",".","If","the","elided","vowel","was","strong",",","the","vowel","merged","with","takes","on","the","stress",".",":","param","line",":",":","param","regexp",":",":","param","quantity",":",":","param","offset",":",":","return",":",">",">",">","print","(","VerseScanner","(",")",".elide","(","``","uvae","avaritia","''",",","r","''","[","e","]","\\s","*","[","a","]","''",")",")","uv","\u0101varitia",">",">",">","print","(","VerseScanner","(",")",".elide","(","``","mare","avaritia","''",",","r","''","[","e","]","\\s","*","[","a","]","''",")",")","mar","avaritia"]
code: def elide(
      self, line: str, regexp: str, quantity: int = 1, offset: int = 0
  ) -> str:
      """
      Erase a section of a line, matching on a regex, pushing in a quantity of blank spaces,
      and jumping forward with an offset if necessary.
      If the elided vowel was strong, the vowel merged with takes on the stress.
  
      :param line:
      :param regexp:
      :param quantity:
      :param offset:
      :return:
  
      >>> print(VerseScanner().elide("uvae avaritia", r"[e]\s*[a]"))
      uv   āvaritia
      >>> print(VerseScanner().elide("mare avaritia", r"[e]\s*[a]"))
      mar  avaritia
      """
      matcher = re.compile(regexp)
      positions = matcher.finditer(line)
      new_line = line
      for match in positions:
          (start, end) = match.span()  # pylint: disable=unused-variable
          if (start > 0) and new_line[
              start - 1 : start + 1
          ] in self.constants.DIPTHONGS:
              vowel_to_coerce = new_line[end - 1]
              new_line = (
                  new_line[: (start - 1) + offset]
                  + (" " * (quantity + 2))
                  + self.constants.stress_accent_dict[vowel_to_coerce]
                  + new_line[end:]
              )
          else:
              new_line = (
                  new_line[: start + offset]
                  + (" " * quantity)
                  + new_line[start + quantity + offset :]
              )
      return new_line
  
imports: import logging
  import re
  from typing import Any, Dict, List
  import cltk.prosody.lat.string_utils
  from cltk.prosody.lat.metrical_validator import MetricalValidator
  from cltk.prosody.lat.scansion_constants import ScansionConstants
  from cltk.prosody.lat.scansion_formatter import ScansionFormatter
  from cltk.prosody.lat.syllabifier import Syllabifier
  from cltk.prosody.lat.verse import Verse
label_desc: Use image node_id 9 for calling the VerseScanner obj's underlying member method code with example usage: obj.elide(line, regexp, quantity, offset) and returns: new_line