The maximum difficulty would be about 2^224, that is unrealistically huge, and the current 90T diff is a tiny fraction of that.
I think it would make sense when you understand what a target is, target is what the logic is built on, we store the target in the block header and not the difficulty, the difficulty is just an easier representation of the target, so mining becomes more difficult when the target is smaller and vice versa, so as silly as it sounds, when you see difficulty goes up, it simply means target went down.
So an easy target would be infinity, which means anything that you guess below infinity would be valid, a difficult target would be 0, which means there is nothing smaller, the lower the target goes the smaller the number of valid hashes.
The current target is
00000000000000000003255b0000000000000000000000000000000000000000
in decimal (more human-readable format) that is
301319254070149585548971905645948786445483268317904896
The target in the previous epoch was
000000000000000000033d760000000000000000000000000000000000000000
in decimal
310338180674118587457206844748640968959780028040609792
Notice that the target in the previous epoch was larger (difficulty was lower).
to make things a lot clearer, here is the target of the first block Satoshi mined
00000000ffff0000000000000000000000000000000000000000000000000000
in decimal
26959535291011309493156476344723991336010898738574164086137773096960
now since Difficulty= maximum target/given target, if you apply that on the first block it would give you difficulty of 1 (target was too huge, difficulty was too low, you basically guess anything and get a block
), apply it for the current target and you get 89T
Now if you read the post I quoted in my previous reply, you would understand how it's easier to hash a number that has less leading zero than more, i.e, it's easier to find larger numbers than smaller ones, think of it this way, you have a box that has an infinite number of pieces of paper ranging from 1 to infinity, I tell you if you manage to pick any piece of paper that is smaller than 1000000000000000000000000000000000, I 'l give you the prize, that would certainly be easier than if I told you the number you need is smaller than 10 because then there would be only 9 chances out of the infinite numbers in the box.
I know it's easier to understand difficulty than to understand the target, but really, if you don't understand the target, there will always be missing pieces in your comprehension of how this works, now when you say high share, it's actually a small target share which then translate to a high diff share.
So if you are required to find a number smaller or equal to 1000 and you find 1, then that's a very small target which is a very high diff, so when you see blocks getting a high share they technically found a hash a lot smaller than they had to win a block, so the smallest the target can be would be a 256-bit number, which is just right above 0, so when you ask how high share can be, it can be as high as 2^224.