According to the authors, Part-based approaches need well-formed data, but Made to reliably separate lists:
Using your a,
a = {{{1, 2, 3}, {1, 3, 2}, 5}, {{1, 4, 5}, {1, 0, 2}, 10}, {{4, 5, 3}, {8, 3, 4}, 15}}; Cases[a,{_List,_List,n_}:>n,Infinity] {5, 10, 15}
Other fragments of the record may be extracted in similar forms.
A part-based approach will depend on malformed data, such as:
badA = {{{1, 2, 3}, {1, 3, 2}, 5}, {{1, 4, 5}, {1, 0, 2}, 10}, {{4, 5, 3}, {8, 3, 4}, 15}, {baddata}, {{1, 2, 3}, 4}}; badA[[All,3]] {{{1, 2, 3}, {1, 3, 2}, 5}, {{1, 4, 5}, {1, 0, 2}, 10}, {{4, 5, 3}, {8, 3, 4}, 15}, {baddata}, {{1, 2, 3}, 4}}[[All, 3]]
but Cases will pass garbage, working only according to relevant data
Cases[badA, {_List, _List, s_} :> s, Infinity] {5, 10, 15}
Hth,
Fred klinger