Can anyone enlighten me why ranges act like this on Python?

I am typing those lines in Python, trying to understand how ranges work and how to play around them, but I am so confused:

o = range(0, 100000000, 2)
print(o)
p = o[4:100000:2]
print( p )
r = p[3:600:2]
print®

print("=" * 40)
range = range(0, 1000000000000000000, 2)
range1 = range[0:50:2]
range2 = range1[2:50:2]
range3 = range2[2:50:2]
range4 = range3[2:50:2]
range5 = range4[2:1000:-3]
print(range)
print(range1)
print(range2)
print(range3)
print(range4)
print(range5)

This is the output:

range(0, 100000000, 2)
range(8, 200000, 4)
range(20, 2408, 8)

========================================
range(0, 1000000000000000000, 2)
range(0, 100, 4)
range(8, 100, 8)
range(24, 104, 16)
range(56, 104, 32)
range(88, 88, -96)

Could you explain what you are confused about?