code: def _number_finder(s, regex, numconv):
      
  
      # Split.  If there are no splits, return now
      s = regex.split(s)
      if len(s) == 1:
          return tuple(s)
  
      # Now convert the numbers to numbers, and leave strings as strings
      s = remove_empty(s)
      for i in range(len(s)):
          try:
              s[i] = numconv(s[i])
          except ValueError:
              pass
  
      # If the list begins with a number, lead with an empty string.
      # This is used to get around the "unorderable types" issue.
      if not isinstance(s[0], six.string_types):
          return [''] + s
      else:
          return s
docs: Helper to split numbers