I use the following code output and need to retrieve the position of the part containing the blue-coloured integer 4
Part 1:
List[Placed[List[ Style[3, Rule[LineColor, RGBColor[1, 0, 0]], Rule[FrontFaceColor, RGBColor[1, 0, 0]], Rule[BackFaceColor, RGBColor[1, 0, 0]], Rule[GraphicsColor, RGBColor[1, 0, 0]], Rule[FontColor, RGBColor[1, 0, 0]]], Style[4, Rule[LineColor, RGBColor[0, 0, 1]], Rule[FrontFaceColor, RGBColor[0, 0, 1]], Rule[BackFaceColor, RGBColor[0, 0, 1]], Rule[GraphicsColor, RGBColor[0, 0, 1]], Rule[FontColor, RGBColor[0, 0, 1]]]], List[Before, After]], Placed[ List[Style[4, Rule[LineColor, RGBColor[1, 0, 0]], Rule[FrontFaceColor, RGBColor[1, 0, 0]], Rule[BackFaceColor, RGBColor[1, 0, 0]], Rule[GraphicsColor, RGBColor[1, 0, 0]], Rule[FontColor, RGBColor[1, 0, 0]]], Style[3, Rule[LineColor, RGBColor[0, 0, 1]], Rule[FrontFaceColor, RGBColor[0, 0, 1]], Rule[BackFaceColor, RGBColor[0, 0, 1]], Rule[GraphicsColor, RGBColor[0, 0, 1]], Rule[FontColor, RGBColor[0, 0, 1]]]], List[Before, After]]]
I tried:
Part 2:
Select[List[Placed[List[ Style[3, Rule[LineColor, RGBColor[1, 0, 0]], Rule[FrontFaceColor, RGBColor[1, 0, 0]], Rule[BackFaceColor, RGBColor[1, 0, 0]], Rule[GraphicsColor, RGBColor[1, 0, 0]], Rule[FontColor, RGBColor[1, 0, 0]]], Style[4, Rule[LineColor, RGBColor[0, 0, 1]], Rule[FrontFaceColor, RGBColor[0, 0, 1]], Rule[BackFaceColor, RGBColor[0, 0, 1]], Rule[GraphicsColor, RGBColor[0, 0, 1]], Rule[FontColor, RGBColor[0, 0, 1]]]], List[Before, After]], Placed[ List[Style[4, Rule[LineColor, RGBColor[1, 0, 0]], Rule[FrontFaceColor, RGBColor[1, 0, 0]], Rule[BackFaceColor, RGBColor[1, 0, 0]], Rule[GraphicsColor, RGBColor[1, 0, 0]], Rule[FontColor, RGBColor[1, 0, 0]]], Style[3, Rule[LineColor, RGBColor[0, 0, 1]], Rule[FrontFaceColor, RGBColor[0, 0, 1]], Rule[BackFaceColor, RGBColor[0, 0, 1]], Rule[GraphicsColor, RGBColor[0, 0, 1]], Rule[FontColor, RGBColor[0, 0, 1]]]], List[Before, After]]], Select[#[[1]][[2]], IntegerQ] & == 4]
Which produces { }
However
Part 3
a = Placed[ List[Style[3, Rule[LineColor, RGBColor[1, 0, 0]], Rule[FrontFaceColor, RGBColor[1, 0, 0]], Rule[BackFaceColor, RGBColor[1, 0, 0]], Rule[GraphicsColor, RGBColor[1, 0, 0]], Rule[FontColor, RGBColor[1, 0, 0]]], Style[4, Rule[LineColor, RGBColor[0, 0, 1]], Rule[FrontFaceColor, RGBColor[0, 0, 1]], Rule[BackFaceColor, RGBColor[0, 0, 1]], Rule[GraphicsColor, RGBColor[0, 0, 1]], Rule[FontColor, RGBColor[0, 0, 1]]]], List[Before, After]][[1]][[2]] Select[a,IntegerQ]
produces 4 as expected.
Hence I would have expected Part 2 to produce the expression containing the blue label 4, i.e. the following result
Placed[List[ Style[3, Rule[LineColor, RGBColor[1, 0, 0]], Rule[FrontFaceColor, RGBColor[1, 0, 0]], Rule[BackFaceColor, RGBColor[1, 0, 0]], Rule[GraphicsColor, RGBColor[1, 0, 0]], Rule[FontColor, RGBColor[1, 0, 0]]], Style[4, Rule[LineColor, RGBColor[0, 0, 1]], Rule[FrontFaceColor, RGBColor[0, 0, 1]], Rule[BackFaceColor, RGBColor[0, 0, 1]], Rule[GraphicsColor, RGBColor[0, 0, 1]], Rule[FontColor, RGBColor[0, 0, 1]]]], List[Before, After]]
On closer inspection I tried the following:
FullForm[Select[a, IntegerQ]]
which results in
Style[4]
However, Style[4] should not be the result of a selection for integers.
What is going on?