It seems that start(2), when groupCount()==1 returns -1, best I can tell it should throw an out-of-bounds exception.