Remenber in 2d the border see as in direct sens by default ( the domain must be a left of the orient
border) or put a negative number of segment to reverse this rule.
THE CORRECTION
border v1(t=0,5.5){ x=0; y=t; label=1;};
border h1(t=0,4){ x=t; y=5.5; label=2;};
border c1(t=pi/2,-pi/2){ x=1.75*cos(t)+4; y=1.75*sin(t)+3.75; label=3;};
border d2(t=4,5){ x=t; y=-2*t+10; label=4;};
border h4(t=5,3.5){ x=t; y=0; label=5;};
border d1(t=3.5,2.5){ x=t; y=-2*t+7; label=6;};
border h3(t=2.5,1.5){ x=t; y=2; label=7;};
border v2(t=2,0){ x=1.5; y=t; label=8;};
border h2(t=1.5,0){ x=t; y=0; label=9;};
// inner border
border v3(t=3,4.5){ x=1.5; y=t; label=10;};
border h6(t=1.5,3.5){ x=t; y=4.5; label=11;};
border c2(t=pi/2,-pi/2){ x=0.75*cos(t)+3.5; y=0.75*sin(t)+3.75; label=12;};
border h5(t=3.5,1.5){ x=t; y=3; label=13;};
int n=20;
plot(v1(n)+h1(n)+c1(n)+d2(-n)+h4(n)+d1(n)+h3(n)+v2(n)+h2(n)+v3(-n)+h6(-n)+c2(-n)+h5(-n),wait=1);
mesh Th =buildmesh(v1(-n)+h1(-n)+c1(-n)+d2(-n)+h4(-n)+d1(-n)+h3(-n)+v2(-n)+h2(-n)+v3(n)+h6(n)+c2(n)+h5(n));
plot(Th,wait=1);