Index: src/builder.cpp
===================================================================
--- src/builder.cpp	(revision 56165)
+++ src/builder.cpp	(working copy)
@@ -666,19 +666,19 @@
 		t_translation::t_match(cfg["type"], t_translation::WILDCARD), global_images);
 
 
-	std::vector<std::string> item_string = utils::split(cfg["set_flag"]);
+	std::vector<std::string> item_string = utils::square_parenthetical_split(cfg["set_flag"],',',"[","]");
 	constraint.set_flag.insert(constraint.set_flag.end(),
 			item_string.begin(), item_string.end());
 
-	item_string = utils::split(cfg["has_flag"]);
+	item_string = utils::square_parenthetical_split(cfg["has_flag"],',',"[","]");
 	constraint.has_flag.insert(constraint.has_flag.end(),
 			item_string.begin(), item_string.end());
 
-	item_string = utils::split(cfg["no_flag"]);
+	item_string = utils::square_parenthetical_split(cfg["no_flag"],',',"[","]");
 	constraint.no_flag.insert(constraint.no_flag.end(),
 			item_string.begin(), item_string.end());
 
-	item_string = utils::split(cfg["set_no_flag"]);
+	item_string = utils::square_parenthetical_split(cfg["set_no_flag"],',',"[","]");
 	constraint.set_flag.insert(constraint.set_flag.end(),
 			item_string.begin(), item_string.end());
 	constraint.no_flag.insert(constraint.no_flag.end(),
Index: data/core/terrain-graphics/internal-tracks.cfg
===================================================================
--- data/core/terrain-graphics/internal-tracks.cfg	(revision 56165)
+++ data/core/terrain-graphics/internal-tracks.cfg	(working copy)
@@ -129,8 +129,8 @@
         [tile]
             pos=1
             type={TERRAIN}
-            no_flag={FLAG},{FLAG}-connect-@R1,{FLAG}-connect-@R2,{FLAG}-connect-@R4,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R3
+            no_flag={FLAG},{FLAG}-connect-@R[1,2,4,5]
+            has_flag={FLAG}-connect-@R[0,3]
             set_flag={FLAG}
         [/tile]
         probability={PROB}
@@ -176,8 +176,8 @@
             type={TERRAIN}
             #The layout don't decide where to put terminations, we put them where termination should go, but the exit side isn't a bridge
             #terminations only go where straight bridge should have gone
-            no_flag={FLAG},{FLAG}-connect-@R1,{FLAG}-connect-@R2,{FLAG}-connect-@R4,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R3
+            no_flag={FLAG},{FLAG}-connect-@R[1,2,4,5]
+            has_flag={FLAG}-connect-@R[0,3]
             set_flag={FLAG},{FLAG}-connected-@R0
         [/tile]
 
@@ -213,9 +213,9 @@
         [tile]
             pos=1
             type={TERRAIN}
-            no_flag={FLAG},{FLAG}-connect-@R2,{FLAG}-connect-@R3,{FLAG}-connect-@R4,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R1
-            set_flag={FLAG},{FLAG}-connected-@R0,{FLAG}-connected-@R1
+            no_flag={FLAG},{FLAG}-connect-@R[2~5]
+            has_flag={FLAG}-connect-@R[0,1]
+            set_flag={FLAG},{FLAG}-connected-@R[0,1]
         [/tile]
 
         probability={PROB}
@@ -250,9 +250,9 @@
         [tile]
             pos=1
             type={TERRAIN}
-            no_flag={FLAG},{FLAG}-connect-@R1,{FLAG}-connect-@R3,{FLAG}-connect-@R4,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R2
-            set_flag={FLAG},{FLAG}-connected-@R0,{FLAG}-connected-@R2
+            no_flag={FLAG},{FLAG}-connect-@R[1,3~5]
+            has_flag={FLAG}-connect-@R[0,2]
+            set_flag={FLAG},{FLAG}-connected-@R[0,2]
         [/tile]
 
         probability={PROB}
@@ -295,9 +295,9 @@
         [tile]
             pos=1
             type={TERRAIN}
-            no_flag={FLAG},{FLAG}-connect-@R1,{FLAG}-connect-@R2,{FLAG}-connect-@R4,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R3
-            set_flag={FLAG},{FLAG}-connected-@R0,{FLAG}-connected-@R3
+            no_flag={FLAG},{FLAG}-connect-@R[1,2,4,5]
+            has_flag={FLAG}-connect-@R[0,3]
+            set_flag={FLAG},{FLAG}-connected-@R[0,3]
         [/tile]
 
         probability={PROB}
@@ -341,9 +341,9 @@
         [tile]
             pos=1
             type={TERRAIN}
-            no_flag={FLAG},{FLAG}-connect-@R3,{FLAG}-connect-@R4,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R1,{FLAG}-connect-@R2
-            set_flag={FLAG},{FLAG}-connected-@R0,{FLAG}-connected-@R1,{FLAG}-connected-@R2
+            no_flag={FLAG},{FLAG}-connect-@R[3~5]
+            has_flag={FLAG}-connect-@R[0~2]
+            set_flag={FLAG},{FLAG}-connected-@R[0~2]
         [/tile]
 
         probability={PROB}
@@ -378,9 +378,9 @@
         [tile]
             pos=1
             type={TERRAIN}
-            no_flag={FLAG},{FLAG}-connect-@R2,{FLAG}-connect-@R4,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R1,{FLAG}-connect-@R3
-            set_flag={FLAG},{FLAG}-connected-@R0,{FLAG}-connected-@R1,{FLAG}-connected-@R3
+            no_flag={FLAG},{FLAG}-connect-@R[2,4,5]
+            has_flag={FLAG}-connect-@R[0,1,3]
+            set_flag={FLAG},{FLAG}-connected-@R[0,1,3]
         [/tile]
 
         probability={PROB}
@@ -416,9 +416,9 @@
         [tile]
             pos=1
             type={TERRAIN}
-            no_flag={FLAG},{FLAG}-connect-@R2,{FLAG}-connect-@R3,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R1,{FLAG}-connect-@R4
-            set_flag={FLAG},{FLAG}-connected-@R0,{FLAG}-connected-@R1,{FLAG}-connected-@R4
+            no_flag={FLAG},{FLAG}-connect-@R[2,3,5]
+            has_flag={FLAG}-connect-@R[0,1,4]
+            set_flag={FLAG},{FLAG}-connected-@R[0,1,4]
         [/tile]
 
         probability={PROB}
@@ -453,9 +453,9 @@
         [tile]
             pos=1
             type={TERRAIN}
-            no_flag={FLAG},{FLAG}-connect-@R1,{FLAG}-connect-@R3,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R2,{FLAG}-connect-@R4
-            set_flag={FLAG},{FLAG}-connected-@R0,{FLAG}-connected-@R2,{FLAG}-connected-@R4
+            no_flag={FLAG},{FLAG}-connect-@R[1,3,5]
+            has_flag={FLAG}-connect-@R[0,2,4]
+            set_flag={FLAG},{FLAG}-connected-@R[0,2,4]
         [/tile]
 
         probability={PROB}
@@ -501,9 +501,9 @@
         [tile]
             pos=1
             type={TERRAIN}
-            no_flag={FLAG},{FLAG}-connect-@R4,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R1,{FLAG}-connect-@R2,{FLAG}-connect-@R3
-            set_flag={FLAG},{FLAG}-connected-@R0,{FLAG}-connected-@R1,{FLAG}-connected-@R2,{FLAG}-connected-@R3
+            no_flag={FLAG},{FLAG}-connect-@R[4,5]
+            has_flag={FLAG}-connect-@R[0~3]
+            set_flag={FLAG},{FLAG}-connected-@R[0~3]
         [/tile]
 
         probability={PROB}
@@ -539,9 +539,9 @@
         [tile]
             pos=1
             type={TERRAIN}
-            no_flag={FLAG},{FLAG}-connect-@R3,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R1,{FLAG}-connect-@R2,{FLAG}-connect-@R4
-            set_flag={FLAG},{FLAG}-connected-@R0,{FLAG}-connected-@R1,{FLAG}-connected-@R2,{FLAG}-connected-@R4
+            no_flag={FLAG},{FLAG}-connect-@R[3,5]
+            has_flag={FLAG}-connect-@R[0~2,4]
+            set_flag={FLAG},{FLAG}-connected-@R[0~2,4]
         [/tile]
 
         probability={PROB}
@@ -577,9 +577,9 @@
         [tile]
             pos=1
             type={TERRAIN}
-            no_flag={FLAG},{FLAG}-connect-@R2,{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R1,{FLAG}-connect-@R3,{FLAG}-connect-@R4
-            set_flag={FLAG},{FLAG}-connected-@R0,{FLAG}-connected-@R1,{FLAG}-connected-@R3,{FLAG}-connected-@R4
+            no_flag={FLAG},{FLAG}-connect-@R[2,5]
+            has_flag={FLAG}-connect-@R[0,1,3,4]
+            set_flag={FLAG},{FLAG}-connected-@R[0,1,3,4]
         [/tile]
 
         probability={PROB}
@@ -624,8 +624,8 @@
             pos=1
             type={TERRAIN}
             no_flag={FLAG},{FLAG}-connect-@R5
-            has_flag={FLAG}-connect-@R0,{FLAG}-connect-@R1,{FLAG}-connect-@R2,{FLAG}-connect-@R3,{FLAG}-connect-@R4
-            set_flag={FLAG},{FLAG}-connected-@R0,{FLAG}-connected-@R1,{FLAG}-connected-@R2,{FLAG}-connected-@R3,{FLAG}-connected-@R4
+            has_flag={FLAG}-connect-@R[0~4]
+            set_flag={FLAG},{FLAG}-connected-@R[0~4]
         [/tile]
 
         probability={PROB}
@@ -657,8 +657,8 @@
             pos=1
             type={TERRAIN}
             no_flag={FLAG}
-            has_flag={FLAG}-connect-n,{FLAG}-connect-ne,{FLAG}-connect-se,{FLAG}-connect-s,{FLAG}-connect-sw,{FLAG}-connect-nw
-            set_flag={FLAG},{FLAG}-connected-n,{FLAG}-connected-ne,{FLAG}-connected-se,{FLAG}-connected-s,{FLAG}-connected-sw,{FLAG}-connected-nw
+            has_flag={FLAG}-connect-[n,ne,se,s,sw,nw]
+            set_flag={FLAG},{FLAG}-connected-[n,ne,se,s,sw,nw]
         [/tile]
 
         probability={PROB}
@@ -684,7 +684,7 @@
             pos=1
             type={TERRAIN}
             no_flag={FLAG}
-            set_flag={FLAG},{FLAG}-connected-{R0},{FLAG}-connected-{R3}
+            set_flag={FLAG},{FLAG}-connected-[{R0},{R3}]
         [/tile]
 
         probability={PROB}
Index: data/core/terrain-graphics/transitions.cfg
===================================================================
--- data/core/terrain-graphics/transitions.cfg	(revision 56165)
+++ data/core/terrain-graphics/transitions.cfg	(working copy)
@@ -9,7 +9,7 @@
             x=0
             y=0
             type={TERRAIN}
-            set_flag={FLAG}-n,{FLAG}-ne,{FLAG}-se,{FLAG}-s,{FLAG}-sw,{FLAG}-nw
+            set_flag={FLAG}-[n,ne,se,s,sw,nw]
         [/tile]
     [/terrain_graphics]
 #enddef
@@ -36,7 +36,7 @@
             x=0
             y=0
             type={TERRAIN}
-            set_flag={FLAG}-tl,{FLAG}-tr,{FLAG}-bl,{FLAG}-br,{FLAG}-r,{FLAG}-l
+            set_flag={FLAG}-[tl,tr,bl,br,r,l]
         [/tile]
     [/terrain_graphics]
 #enddef
Index: data/core/terrain-graphics/internal-border.cfg
===================================================================
--- data/core/terrain-graphics/internal-border.cfg	(revision 56165)
+++ data/core/terrain-graphics/internal-border.cfg	(working copy)
@@ -43,7 +43,7 @@
         [tile]
             pos=1
             type={ADJACENT}
-            set_no_flag={FLAG}-@R0,{FLAG}-@R1
+            set_no_flag={FLAG}-@R[0,1]
         [/tile]
         [tile]
             pos=2
@@ -80,7 +80,7 @@
         [tile]
             pos=1
             type={ADJACENT}
-            set_no_flag={FLAG}-@R0,{FLAG}-@R1,{FLAG}-@R2
+            set_no_flag={FLAG}-@R[0~2]
         [/tile]
         [tile]
             pos=2
@@ -123,7 +123,7 @@
         [tile]
             pos=1
             type={ADJACENT}
-            set_no_flag={FLAG}-@R0,{FLAG}-@R1,{FLAG}-@R2,{FLAG}-@R3
+            set_no_flag={FLAG}-@R[0~3]
         [/tile]
         [tile]
             pos=2
@@ -168,7 +168,7 @@
         [tile]
             pos=1
             type={ADJACENT}
-            set_no_flag={FLAG}-@R0,{FLAG}-@R1,{FLAG}-@R2,{FLAG}-@R3
+            set_no_flag={FLAG}-@R[0~3]
         [/tile]
         [tile]
             pos=2
@@ -218,7 +218,7 @@
         [tile]
             pos=1
             type={ADJACENT}
-            set_no_flag={FLAG}-@R0,{FLAG}-@R1,{FLAG}-@R2,{FLAG}-@R3
+            set_no_flag={FLAG}-@R[0~3]
         [/tile]
         [tile]
             pos=2
Index: data/core/terrain-graphics/bridge.cfg
===================================================================
--- data/core/terrain-graphics/bridge.cfg	(revision 56165)
+++ data/core/terrain-graphics/bridge.cfg	(working copy)
@@ -153,25 +153,25 @@
 #enddef
 
 #define BRIDGE:JOINTS NW_SE_OVERLAY N_S_OVERLAY NE_SW_OVERLAY B_TERRAIN S_TERRAIN NAME LAYER IMAGE_GROUP
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) * *^{N_S_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN} *^{NW_SE_OVERLAY}           ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) () {NAME}-s () {NAME}-ne () {NAME}-nw {LAYER} {IMAGE_GROUP}-n-se-sw}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN} *^{N_S_OVERLAY} {S_TERRAIN} ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) {NAME}-se () {NAME}-sw () {NAME}-n () {LAYER} {IMAGE_GROUP}-ne-s-nw}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN} *^{N_S_OVERLAY} *           ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) {NAME}-se () {NAME}-sw () {NAME}-n () {LAYER} {IMAGE_GROUP}-ne-s-nw-l}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} *           *^{N_S_OVERLAY} {S_TERRAIN} ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) {NAME}-se () {NAME}-sw () {NAME}-n () {LAYER} {IMAGE_GROUP}-ne-s-nw-r}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) * *^{N_S_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN} *^{NW_SE_OVERLAY}           ({NAME}-[n,se,sw,ne,s,nw]) () {NAME}-s () {NAME}-ne () {NAME}-nw {LAYER} {IMAGE_GROUP}-n-se-sw}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN} *^{N_S_OVERLAY} {S_TERRAIN} ({NAME}-[n,se,sw,ne,s,nw]) {NAME}-se () {NAME}-sw () {NAME}-n () {LAYER} {IMAGE_GROUP}-ne-s-nw}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN} *^{N_S_OVERLAY} *           ({NAME}-[n,se,sw,ne,s,nw]) {NAME}-se () {NAME}-sw () {NAME}-n () {LAYER} {IMAGE_GROUP}-ne-s-nw-l}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} *           *^{N_S_OVERLAY} {S_TERRAIN} ({NAME}-[n,se,sw,ne,s,nw]) {NAME}-se () {NAME}-sw () {NAME}-n () {LAYER} {IMAGE_GROUP}-ne-s-nw-r}
 #enddef
 
 #define BRIDGE:CORNERS NW_SE_OVERLAY N_S_OVERLAY NE_SW_OVERLAY B_TERRAIN S_TERRAIN NAME LAYER IMAGE_GROUP
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY})   *^{NW_SE_OVERLAY} * *                 {S_TERRAIN}       *^{N_S_OVERLAY}   *                 ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) {NAME}-se () () () {NAME}-n ()  {LAYER} {IMAGE_GROUP}-s-nw}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY})   *                 *^{N_S_OVERLAY}   * *                 {S_TERRAIN}       *^{NW_SE_OVERLAY} ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) () {NAME}-s () () () {NAME}-nw  {LAYER} {IMAGE_GROUP}-n-se}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NE_SW_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY})   *                 * *^{NE_SW_OVERLAY} *                 *^{N_S_OVERLAY}   {S_TERRAIN}       ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) () () {NAME}-sw () {NAME}-n ()  {LAYER} {IMAGE_GROUP}-ne-s}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NE_SW_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY})   *                 *^{N_S_OVERLAY}   * *^{NE_SW_OVERLAY} {S_TERRAIN}       *                 ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) () {NAME}-s () {NAME}-ne () ()  {LAYER} {IMAGE_GROUP}-sw-n}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *                 * *                 *^{NE_SW_OVERLAY} {S_TERRAIN}       *^{NW_SE_OVERLAY} ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) () () () {NAME}-ne () {NAME}-nw {LAYER} {IMAGE_GROUP}-sw-se}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN}       {S_TERRAIN}       {S_TERRAIN}       ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN}       {S_TERRAIN}       *                 ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-lc}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN}       *                 {S_TERRAIN}       ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-lr}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} *                 {S_TERRAIN}       {S_TERRAIN}       ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-cr}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN}       *                 *                 ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-l}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} *                 {S_TERRAIN}       *                 ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-c}
-   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} *                 *                 {S_TERRAIN}       ({NAME}-n,{NAME}-se,{NAME}-sw,{NAME}-ne,{NAME}-s,{NAME}-nw) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-r}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY})   *^{NW_SE_OVERLAY} * *                 {S_TERRAIN}       *^{N_S_OVERLAY}   *                 ({NAME}-[n,se,sw,ne,s,nw]) {NAME}-se () () () {NAME}-n ()  {LAYER} {IMAGE_GROUP}-s-nw}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY})   *                 *^{N_S_OVERLAY}   * *                 {S_TERRAIN}       *^{NW_SE_OVERLAY} ({NAME}-[n,se,sw,ne,s,nw]) () {NAME}-s () () () {NAME}-nw  {LAYER} {IMAGE_GROUP}-n-se}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NE_SW_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY})   *                 * *^{NE_SW_OVERLAY} *                 *^{N_S_OVERLAY}   {S_TERRAIN}       ({NAME}-[n,se,sw,ne,s,nw]) () () {NAME}-sw () {NAME}-n ()  {LAYER} {IMAGE_GROUP}-ne-s}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NE_SW_OVERLAY},{B_TERRAIN}^{N_S_OVERLAY})   *                 *^{N_S_OVERLAY}   * *^{NE_SW_OVERLAY} {S_TERRAIN}       *                 ({NAME}-[n,se,sw,ne,s,nw]) () {NAME}-s () {NAME}-ne () ()  {LAYER} {IMAGE_GROUP}-sw-n}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *                 * *                 *^{NE_SW_OVERLAY} {S_TERRAIN}       *^{NW_SE_OVERLAY} ({NAME}-[n,se,sw,ne,s,nw]) () () () {NAME}-ne () {NAME}-nw {LAYER} {IMAGE_GROUP}-sw-se}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN}       {S_TERRAIN}       {S_TERRAIN}       ({NAME}-[n,se,sw,ne,s,nw]) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN}       {S_TERRAIN}       *                 ({NAME}-[n,se,sw,ne,s,nw]) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-lc}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN}       *                 {S_TERRAIN}       ({NAME}-[n,se,sw,ne,s,nw]) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-lr}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} *                 {S_TERRAIN}       {S_TERRAIN}       ({NAME}-[n,se,sw,ne,s,nw]) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-cr}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} {S_TERRAIN}       *                 *                 ({NAME}-[n,se,sw,ne,s,nw]) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-l}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} *                 {S_TERRAIN}       *                 ({NAME}-[n,se,sw,ne,s,nw]) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-c}
+   {BRIDGE:NEXUS ({B_TERRAIN}^{NW_SE_OVERLAY},{B_TERRAIN}^{NE_SW_OVERLAY}) *^{NW_SE_OVERLAY} * *^{NE_SW_OVERLAY} *                 *                 {S_TERRAIN}       ({NAME}-[n,se,sw,ne,s,nw]) {NAME}-se () {NAME}-sw () () () {LAYER} {IMAGE_GROUP}-ne-nw-r}
 #enddef
 
 #define BRIDGE:STRAIGHTS NW_SE_OVERLAY N_S_OVERLAY NE_SW_OVERLAY BN_TERRAIN BS_TERRAIN S_TERRAIN NAME LAYER IMAGE_GROUP
Index: data/core/terrain-graphics/new-macros.cfg
===================================================================
--- data/core/terrain-graphics/new-macros.cfg	(revision 56165)
+++ data/core/terrain-graphics/new-macros.cfg	(working copy)
@@ -98,7 +98,7 @@
             pos=1
             type={TERRAINLIST}
             no_flag=fence
-            set_flag=fence,fence-ne,fence-se,fence-sw,fence-nw
+            set_flag=fence,fence-[ne,se,sw,nw]
         [/tile]
 
         [tile]
@@ -125,7 +125,7 @@
             pos=1
             type={TERRAINLIST}
             no_flag=fence
-            set_flag=fence,fence-ne,fence-se,fence-nw
+            set_flag=fence,fence-[ne,se,nw]
         [/tile]
 
         [tile]
@@ -152,7 +152,7 @@
             pos=1
             type={TERRAINLIST}
             no_flag=fence
-            set_flag=fence,fence-se,fence-sw,fence-nw
+            set_flag=fence,fence-[se,sw,nw]
         [/tile]
 
         [tile]
@@ -179,7 +179,7 @@
             pos=1
             type={TERRAINLIST}
             no_flag=fence
-            set_flag=fence,fence-ne,fence-se,fence-sw
+            set_flag=fence,fence-[ne,se,sw]
         [/tile]
 
         [tile]
@@ -206,7 +206,7 @@
             pos=1
             type={TERRAINLIST}
             no_flag=fence
-            set_flag=fence,fence-ne,fence-sw,fence-nw
+            set_flag=fence,fence-[ne,sw,nw]
         [/tile]
 
         [tile]
@@ -233,7 +233,7 @@
             pos=1
             type={TERRAINLIST}
             no_flag=fence
-            set_flag=fence,fence-ne,fence-se
+            set_flag=fence,fence-[ne,se]
         [/tile]
 
         [tile]
@@ -260,7 +260,7 @@
             pos=1
             type={TERRAINLIST}
             no_flag=fence
-            set_flag=fence,fence-sw,fence-nw
+            set_flag=fence,fence-[sw,nw]
         [/tile]
 
         [tile]
@@ -287,7 +287,7 @@
             pos=1
             type={TERRAINLIST}
             no_flag=fence
-            set_flag=fence,fence-se,fence-sw
+            set_flag=fence,fence-[se,sw]
         [/tile]
 
         [tile]
@@ -314,7 +314,7 @@
             pos=1
             type={TERRAINLIST}
             no_flag=fence
-            set_flag=fence,fence-ne,fence-nw
+            set_flag=fence,fence-[ne,nw]
         [/tile]
 
         [tile]
@@ -406,7 +406,7 @@
             pos=1
             type={TERRAINLIST}
             no_flag=fence
-            set_flag=fence,fence-ne,fence-se,fence-sw,fence-nw
+            set_flag=fence,fence-[ne,se,sw,nw]
         [/tile]
 
         [tile]
@@ -674,7 +674,7 @@
         [tile]
             pos=1
             type={ADJACENT}
-            set_no_flag=beach-@R0-@R5,beach-@R0-@R1
+            set_no_flag=beach-@R0-[@R5,@R1]
         [/tile]
         [tile]
             pos=2
@@ -717,7 +717,7 @@
         [tile]
             pos=1
             type={TERRAINLIST}
-            set_no_flag=beach-@R0-@R5,beach-@R0-@R1
+            set_no_flag=beach-@R0-[@R5,@R1]
         [/tile]
         [tile]
             pos=2
Index: data/core/terrain-graphics/internal-corners.cfg
===================================================================
--- data/core/terrain-graphics/internal-corners.cfg	(revision 56165)
+++ data/core/terrain-graphics/internal-corners.cfg	(working copy)
@@ -40,7 +40,7 @@
             x=0
             y=0
             type={TERRAIN}
-            set_flag={FLAG}-tr,{FLAG}-r,{FLAG}-br,{FLAG}-bl,{FLAG}-l,{FLAG}-tl
+            set_flag={FLAG}-[tr,r,br,bl,l,tl]
         [/tile]
     [/terrain_graphics]
 #enddef
