Here is something peculiar. If we switch >>65 so ranges are placed as alternates before single posts, irregex-search works too:
1 ]=> (define re65sw ">>((([1-9][0-9]{0,2})-([1-9][0-9]{0,2}))|([1-9][0-9]{0,2}))(,((([1-9][0-9]{0,2})-([1-9][0-9]{0,2}))|([1-9][0-9]{0,2}))){0,11}")
;Value: re65sw
1 ]=> (irregex-match-substring (irregex-match re65sw ">>1,3,5,111-222,300"))
;Value 15: ">>1,3,5,111-222,300"
1 ]=> (irregex-match-substring (irregex-search re65sw ">>1,3,5,111-222,300"))
;Value 16: ">>1,3,5,111-222,300"
1 ]=>
This gives me an ides.