With ParametricPlot, you can use Mesh and its friends. The MeshShading is a matrix of colors that maps onto the grid created by the mesh. Here it's 3 x 4 color matrix. Apply ParametricPlot to {s13, f (1 - t) + g t} which interpolates between the two curves.
With[{f = ((0.707106 Sqrt[1 - 1.5 s13^2] + 0.5 s13)^2)/(1 - s13^2),
g = ((0.707106 Sqrt[1 - 1.5 s13^2] - 0.5 s13)^2)/(1 - s13^2)},
Show[
ParametricPlot[
{s13, f (1 - t) + g t}, {s13, 0.0, 0.23}, {t, 0, 1},
PlotRange -> {{0.0, 0.23}, {0.35, 0.67}},
MeshFunctions -> {#1 &, #2 &}, (* x, y *)
Mesh -> {{0.04, 0.1, 0.15}, {0.46, 0.54}}, (* x, y coords *)
MeshStyle -> None,
MeshShading -> {
{Directive[Opacity[.19], Green], Directive[Opacity[.19], Green],
Green, Directive[Opacity[.19], Green]},
{Directive[Opacity[.19], Green], Yellow, Brown, Yellow},
{Directive[Opacity[.19], Green], Directive[Opacity[.19], Green],
Green, Directive[Opacity[.19], Green]}},
Frame -> True, FrameLabel -> {sin13, sin223},
AspectRatio -> 1/GoldenRatio],
Plot[{f, g}, {s13, 0.0, 0.23},
PlotStyle -> {Directive[Gray, Thick], Directive[Brown, Thick]}]
]
]

I had to add the boundary lines by hand using Plot, since there can be only a single BoundaryStyle.
(Edit notice: Originally, I goofed and made the boundary line straight lines.)
Plotwith aRegionPlotusingShow. – Spawn1701D May 23 '13 at 02:45