>400 Ruby

f = -> s {s.split(/(?<=\D)_|_(?=\D)/).map(&:capitalize).join}

%w[
   snake_case ODAI00_99_TEST x_0_x UpperCamelCase
].each{|s| puts '%s => %s' % [s, f[s]]}

# =>
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase