code: def getCharacterSet(self):
          '''Get a character set with individual members or ranges.
          Current index is on '[', the start of the character set.
          '''
          chars = u''
          c = None
          cnt = 1
          start = 0
          while True:
              escaped_slash = False
              c = self.next()
              if self.lookahead() == u'-' and not c == u'\\':
                  f = c
                  self.next()
                  c = self.next()
                  if not c or (c in self.meta_chars):
                      raise StringGenerator.SyntaxError(u"unexpected end of class range")
                  chars += self.getCharacterRange(f, c)
              elif c == u'\\':
                  if self.lookahead() in self.meta_chars:
                      c = self.next()
                      chars += c
                      continue
                  elif self.lookahead() in self.string_code:
                      c = self.next()
                      chars += self.string_code[c]
              elif c and c not in self.meta_chars:
                  chars += c
              if c == u']': 
                  if self.lookahead() == u'{':
                      [start, cnt] = self.getQuantifier()
                  else:
                      start = -1
                      cnt = 1
                  break
              if c and c in self.meta_chars and not self.last() == u"\\":
                  raise StringGenerator.SyntaxError(u"Un-escaped character in class definition: %s" % c)
              if not c:
                  break
          return StringGenerator.CharacterSet(chars, start, cnt)