I went ahead and created a minimal-ish grammar that demonstrates the problem. Here it is (attached below). For example, take this original source and name it foo.blort
:
foo = {
bar[baz] = biff(zorch[frotz]);
bar[7] = { bar[8]; bar[9] };
}
Atom renders this as:

Note that with the cursor on the brace (as shown), the highlight for the close brace is in the expected position even though the brace itself is way off to the right.
blort.json
{
"fileTypes" : [
"blort"
],
"repository" : {
"block-body" : {
"patterns" : [
{
"end" : "\\)",
"begin" : "\\(",
"beginCaptures" : {
"0" : {
"name" : "punctuation.paren.open.blort"
}
},
"patterns" : [
{
"include" : "#block-body"
}
],
"name" : "meta.parens.blort",
"endCaptures" : {
"0" : {
"name" : "punctuation.paren.close.blort"
}
}
},
{
"end" : "\\]",
"begin" : "\\[",
"beginCaptures" : {
"0" : {
"name" : "punctuation.bracket.open.blort"
}
},
"patterns" : [
{
"include" : "#block-body"
}
],
"name" : "meta.collection.blort",
"endCaptures" : {
"0" : {
"name" : "punctuation.bracket.close.blort"
}
}
},
{
"end" : "\\}",
"begin" : "\\{",
"beginCaptures" : {
"0" : {
"name" : "punctuation.brace.open.blort"
}
},
"patterns" : [
{
"include" : "#block-body"
}
],
"name" : "meta.block.blort",
"endCaptures" : {
"0" : {
"name" : "punctuation.brace.close.blort"
}
}
},
{
"match" : "[a-z]+",
"name" : "variable.parameter"
}
]
}
},
"patterns" : [
{
"include" : "#block-body"
}
],
"name" : "Blort",
"scopeName" : "source.blort"
}