A collection is an array of a set of properties. Every element in the array has the same properties (with individual values).
A pointer property is used to organize properties. The sub-attribute the pointer property is stored at will hold a set of properties. It is not an array of properties however.
Scene.collection
Scene.collection.add()
Scene.collection.remove()
Scene.collection ...()
Scene.collection[0]
Scene.collection[0].name # Foo
Scene.collection[0].val # 123
Scene.collection[1]
Scene.collection[1].name # Bar
Scene.collection[1].val # 234
Scene.collection[...]
Scene.collection[...].name # Baz
Scene.collection[...].val # 345
Scene.pointer
Scene.pointer.name # Foo
Scene.pointer.val # 123