docs: def expand_groups(grp):
      """Expand group names.
  
      Args:
          grp (string): group names to expand
  
      Returns:
          list of groups
  
      Examples:
  
          * grp[1-3] will be expanded to [grp1, grp2, grp3]
          * grp1 will be expanded to [grp1]
      """
      p = re.compile(r"(?P<name>.+)\[(?P<start>\d+)-(?P<end>\d+)\]")
      m = p.match(grp)
      if m is not None:
          s = int(m.group('start'))
          e = int(m.group('end'))
          n = m.group('name')
          return list(map(lambda x: n + str(x), range(s, e + 1)))
      else:
          return [grp]