names=Select[(StringCases[list2=Names["System`*"],RegularExpression["[a-z]+"],IgnoreCase->True]//Flatten),MemberQ[list2,#]&]; namesReplaceRules=names/.x_String->(x->"`"<>x<>"`"); I found it will generate the message, but also gives the right result in this case.
StringJoin::string: String expected at position 2 in
<>x<>. >>
I can Use Quiet or Ignore the message, or Add one ToString to x
namesReplaceRules=names/.x_String->(x->"`"<>x<>"`"); Which is the right choice in such a case?
More elegant codes?
Rulerather thanRuleDelayed, and it is even in the context of String operations. If you disagree with this closure please respond to this comment. $\endgroup$