Array-Index related syntax

 array[index]                -> obj      or nil
 array[start, length]        -> an_array or nil
 array[range]                -> an_array or nil
 array.slice(index)          -> obj      or nil
 array.slice(start, length)  -> an_array or nil
 array.slice(range)          -> an_array or nil

 Element Reference---Returns the element at index, or returns a 
 subarray starting at start and continuing for length elements, or 
 returns a subarray specified by range. Negative indices count 
 backward from the end of the array (-1 is the last element). 
 Returns nil if the index (or starting index) are out of range.

    a = [ "a", "b", "c", "d", "e" ]
    a[2] +  a[0] + a[1]    #=> "cab"
    a[6]                   #=> nil
    a[1, 2]                #=> [ "b", "c" ]
    a[1..3]                #=> [ "b", "c", "d" ]
    a[4..7]                #=> [ "e" ]
    a[6..10]               #=> nil
    a[-3, 3]               #=> [ "c", "d", "e" ]
    # special cases
    a[5]                   #=> nil
    a[5, 1]                #=> []
    a[5..10]               #=> []