| Index: runtime/lib/regexp.dart
 | 
| diff --git a/runtime/lib/regexp.dart b/runtime/lib/regexp.dart
 | 
| index e2f777e9ad5319301e855eb3cd85c489fba206be..6c0b741bb2340935b7818ff288311048ea117936 100644
 | 
| --- a/runtime/lib/regexp.dart
 | 
| +++ b/runtime/lib/regexp.dart
 | 
| @@ -22,11 +22,17 @@ class JSRegExpMatch implements Match {
 | 
|    }
 | 
|  
 | 
|    String group(int group) {
 | 
| -    return str.substringUnchecked_(_start(group), _end(group));
 | 
| +    if (group < 0 || group > regexp._groupCount) {
 | 
| +      throw new IndexOutOfRangeException(group);
 | 
| +    }
 | 
| +    if ((group * _kMatchPair) < _match.length ) {
 | 
| +      return str.substringUnchecked_(_start(group), _end(group));
 | 
| +    }
 | 
| +    return null;
 | 
|    }
 | 
|  
 | 
|    String operator [](int group) {
 | 
| -    return str.substringUnchecked_(_start(group), _end(group));
 | 
| +    return this.group(group);
 | 
|    }
 | 
|  
 | 
|    List<String> groups(List<int> groups) {
 | 
| 
 |