code: def all_patterns(name):
      u
  
      # i_ denotes an import-like node
      # u_ denotes a node that appears to be a usage of the name
      if u'.' in name:
          name, attr = name.split(u'.', 1)
          simple_name = simple_name_match % (name)
          simple_attr = subname_match % (attr)
          dotted_name = dotted_name_match % (simple_name, simple_attr)
          i_from = from_import_match % (dotted_name)
          i_from_submod = from_import_submod_match % (simple_name, simple_attr, simple_attr, simple_attr, simple_attr)
          i_name = name_import_match % (dotted_name, dotted_name)
          u_name = power_twoname_match % (simple_name, simple_attr)
          u_subname = power_subname_match % (simple_attr)
          return u' | \n'.join((i_name, i_from, i_from_submod, u_name, u_subname))
      else:
          simple_name = simple_name_match % (name)
          i_name = name_import_match % (simple_name, simple_name)
          i_from = from_import_match % (simple_name)
          u_name = power_onename_match % (simple_name)
          return u' | \n'.join((i_name, i_from, u_name))
docs: u"""
      Accepts a string and returns a pattern of possible patterns involving that name
      Called by simple_mapping_to_pattern for each name in the mapping it receives.