Below are three formats for representing an undirected edge between vertices a and b:
ClearAll[a, b]
a \[UndirectedEdge] b
FullForm[a \[UndirectedEdge] b]
InputForm[a \[UndirectedEdge] b]
Here's a screenshot of the output (to be clear about it's appearance):

Now let's look at some other Forms:
a \[UndirectedEdge] b
OutputForm[a \[UndirectedEdge] b]
StandardForm[a \[UndirectedEdge] b]
TraditionalForm[a \[UndirectedEdge] b]

`Part works on the FullForm and InputForm as expected:
FullForm[a \[UndirectedEdge] b][[1, 2]]
InputForm[a \[UndirectedEdge] b][[1, 2]]
(* out *)
b
b
But Part does not return consistent results for other cases:
a \[UndirectedEdge] b[[1, 2]]
(a \[UndirectedEdge] b)[[1, 2]]
OutputForm[a \[UndirectedEdge] b][[1, 2]]
StandardForm[a \[UndirectedEdge] b][[1, 2]]
TraditionalForm[a \[UndirectedEdge] b][[1, 2]]

Can anyone help explain why Part gives different results? In particular, why doesn't it respond to all of the cases as if they were the FullForm version?
Edit
In retrospect, I realize that I was both (a) miscounting levels and (b) oblivious to the role of Forms as wrappers of expressions. The second issue is touched on by this contribution by R.M
