What didn't you understand, and what are you trying to ask? What are
you looking for in examples? What specifics are you focusing on?

The documentation is clear enough about the versioning rules, with
their example, provided you understand enough fundamentals.

>> str = Marshal.dump("foo")
=> "\x04\bI\"\bfoo\x06:\x06ET"
>> [str[0].ord, str[1].ord].join(".")
=> "4.8"
>> str[1] = "\x07"
=> "\a"
>> Marshal.load(str)
=> "foo"
>> str[1] = "\x09"
=> "\t"
>> Marshal.load(str)
TypeError: incompatible marshal file format (can't be read)
format version 4.8 required; 4.9 given
from (irb):28:in `load'
from (irb):28
from /home/adam/.rvm/rubies/ruby-1.9.3-p286/bin/irb:16:in `<main>'