code: def remove(self, fieldspec):
          
  
          pattern = r'(?P<field>[^.]+)(.(?P<subfield>[^.]+))?'
          match = re.match(pattern, fieldspec)
          if not match:
              return None
  
          grp = match.groupdict()
          for field in self.get_fields(grp['field']):
              if grp['subfield']:
                  updated = []
                  for code, value in pairwise(field.subfields):
                      if not code == grp['subfield']:
                          updated += [code, value]
                  # if we removed the last subfield entry,
                  # remove the whole field, too
                  if not updated:
                      self.remove_field(field)
                  else:
                      field.subfields = updated
              else:
                  # it is a control field
                  self.remove_field(field)
docs: Removes fields or subfields according to `fieldspec`.
  
          If a non-control field subfield removal leaves no other subfields,
          delete the field entirely.