code: def between(value, prefix, suffix, start=0):
      
      value = toString(value)
      if prefix == None:
          e = value.find(suffix, start)
          if e == -1:
              return None
          else:
              return value[:e]
  
      s = value.find(prefix, start)
      if s == -1:
          return None
      s += len(prefix)
  
      e = value.find(suffix, s)
      if e == -1:
          return None
  
      s = value.rfind(prefix, start, e) + len(prefix)  # WE KNOW THIS EXISTS, BUT THERE MAY BE A RIGHT-MORE ONE
  
      return value[s:e]
docs: Return first substring between `prefix` and `suffix`
      :param value:
      :param prefix: if None then return the prefix that ends with `suffix`
      :param suffix: if None then return the suffix that begins with `prefix`
      :param start: where to start the search
      :return: