In reply to Shubhabrata:
It always helps to show the declarations of all identifiers. Assuming:
bit [2:0] a,b;
covergroup cg;
cross a,b;
endmgroup
This cross automatically generates 64 bins: <0,0>, <0,1>, …, <7,6>, <7,7>
Then each explicit bin either ignores or merges bins from the 64 automatically generated cross nins.
The first code ignores 32 bins: <5,0>…<5,7>, <1,0>…<3,7>. That leaves 32 remaining bins
The second code merges the same bins from the first code into a single bin. That leaves 33 remaining bins.
The third code does the same thing as the first code. Both the with clause and inside operator are later additions to the language and overlaps the functionality of intersecs.