code: def parse_channel_name(cls, name, strict=True):
          
          match = cls.MATCH.search(name)
          if match is None or (strict and (
                  match.start() != 0 or match.end() != len(name))):
              raise ValueError("Cannot parse channel name according to LIGO "
                               "channel-naming convention T990033")
          return match.groupdict()
docs: Decompose a channel name string into its components
  
          Parameters
          ----------
          name : `str`
              name to parse
          strict : `bool`, optional
              require exact matching of format, with no surrounding text,
              default `True`
  
          Returns
          -------
          match : `dict`
              `dict` of channel name components with the following keys:
  
              - `'ifo'`: the letter-number interferometer prefix
              - `'system'`: the top-level system name
              - `'subsystem'`: the second-level sub-system name
              - `'signal'`: the remaining underscore-delimited signal name
              - `'trend'`: the trend type
              - `'ndstype'`: the NDS2 channel suffix
  
              Any optional keys that aren't found will return a value of `None`
  
          Raises
          ------
          ValueError
              if the name cannot be parsed with at least an IFO and SYSTEM
  
          Examples
          --------
          >>> Channel.parse_channel_name('L1:LSC-DARM_IN1_DQ')
          {'ifo': 'L1',
           'ndstype': None,
           'signal': 'IN1_DQ',
           'subsystem': 'DARM',
           'system': 'LSC',
           'trend': None}
  
          >>> Channel.parse_channel_name(
              'H1:ISI-BS_ST1_SENSCOR_GND_STS_X_BLRMS_100M_300M.rms,m-trend')
          {'ifo': 'H1',
           'ndstype': 'm-trend',
           'signal': 'ST1_SENSCOR_GND_STS_X_BLRMS_100M_300M',
           'subsystem': 'BS',
           'system': 'ISI',
           'trend': 'rms'}