docs: def match_input_fmt_1(self, fmt):
          """
          Given a single format specifier, e.g., '2X', 'I5', etc., this function
          constructs a list of tuples for matching against that specifier. Each
          element of this list is a tuple
  
                 (xtract_re, cvt_re, divisor, cvt_fn)
  
          where:
  
             xtract_re is a regular expression that extracts an input field of
                     the requisite width;
             cvt_re is a regular expression that matches the character sequence
                     extracted by xtract_re against the specified format;
             divisor is the value to divide by in order to get the appropriate
                     number of decimal places if a decimal point is not given
                     in the input value (meaningful only for floats); and
             cvt_fn is a string denoting the function to be used to convert the
                     matched string to a value.
          """
  
          # first, remove any surrounding space
          fmt = fmt.strip()
  
          # get any leading digits indicating repetition
          match = re.match("(\d+)(.+)", fmt)
          if match is None:
              reps = 1
          else:
              reps = int(match.group(1))
              fmt = match.group(2)
  
          if fmt[0] == "(":  # process parenthesized format list recursively
              fmt = fmt[1:-1]
              fmt_list = fmt.split(",")
              rexp = self.match_input_fmt(fmt_list)
          else:
              if fmt[0] in "iI":  # integer
                  sz = fmt[1:]
                  xtract_rexp = "(.{" + sz + "})"  # r.e. for extraction
                  leading_sp = " *"
                  optional_sign = "-?"
                  rexp0 = "\d+"
                  rexp1 = leading_sp + optional_sign + rexp0  # r.e. for matching
                  divisor = 1
                  rexp = [(xtract_rexp, rexp1, divisor, "int")]
  
              elif fmt[0] in "xX":  # skip
                  xtract_rexp = "."  # r.e. for extraction
                  rexp = [(xtract_rexp, None, None, None)]
  
              elif fmt[0] in "fF":  # floating point
                  idx0 = fmt.find(".")
                  sz = fmt[1:idx0]
                  divisor = 10 ** (int(fmt[idx0 + 1 :]))
                  xtract_rexp = "(.{" + sz + "})"  # r.e. for extraction
                  leading_sp = " *"
                  optional_sign = "-?"
                  rexp0 = "\d+(\.\d+)?"
                  rexp1 = leading_sp + optional_sign + rexp0  # r.e. for matching
                  rexp = [(xtract_rexp, rexp1, divisor, "float")]
              else:
                  raise For2PyError(
                      f"ERROR: Unrecognized format specifier {fmt}\n"
                  )
  
          # replicate the regular expression by the repetition factor in the format
          rexp *= reps
  
          return rexp