[Jos Backus]
>      String       ext      ext2
>      ======       ===      ====
>      a
>      a-b          b
>      a-b-c        b-c      c
>      a-b-c-d      b-c-d    c-d

Here is another idea:

    x = 'a-b-c-d'
    
    ext = []
    y = x.split('-')
    y.each_index {|i| ext << y[i..-1].join('-')}

    irb(main):026:0> ext
    ["a-b-c-d", "b-c-d", "c-d", "d"]

// Niklas