String.prototype.match has two different behaviors:
If the regex doesn't have the global g flag, it returns regex.exec(str). That means that, if there is a match, you will get an array where the 0 key is the match, the key 1 is the first capture group, the 2 key is the second capture group, and so on.
If the regex has the global g flag, it returns am array with all matches, but without the capturing groups.
Therefore, if you didn't use the global flag g, you could use the following to get the first capture group
var matc = (source.match(/sometext(\d+)/) || [])[1];
However, since you use the global flag, you must iterate all matches manually:
var rg = /sometext(\d+)/g,
match;
while(match = rg.exec(source)) {
match[1]; // Do something with it, e.g. push it to an array
}