Группу в регулярном выражении можно определить с помощью круглых скобок следующим образом:
           
           /class-(\d*)/
           
            Группа является подразделом образца. Группы можно использовать со следующей целью.
           
           
            - 
             
              Для применения квантификатора к нескольким символам.
              
- 
             
              Для отделения подобразцов с целью применения при перестановках (с помощью символа
              
               |
              
              ).
              
- 
             
              Для сбора совпадений подстрок (к примеру, с помощью использования
              
               \1
              
              в регулярных выражениях для подбора ранее сопоставленной группы или с помощью применения
              
               $1
              
              аналогичным образом в методе
              
               replace()
              
              класса String).
              
            В следующих разделах подробно описывается использование таких групп.
           
           
            
             
            
            
             Использование групп с квалификаторами
            
            
             Если группа не используется, квантификатор применяется к символу или классу символов, предшествующих ему, как это показано далее:
            
            var pattern:RegExp = /ab*/ ; 
// matches the character a followed by 
// zero or more occurrences of the character b 
 
pattern = /a\d+/;  
// matches the character a followed by  
// one or more digits 
 
pattern = /a[123]{1,3}/; 
// matches the character a followed by  
// one to three occurrences of either 1, 2, or 3
            
             Однако можно использовать группу для применения квантификатора к нескольким символам или классам символов:
            
            var pattern:RegExp = /(ab)*/; 
// matches zero or more occurrences of the character a  
// followed by the character b, such as ababab 
 
pattern = /(a\d)+/; 
// matches one or more occurrences of the character a followed by  
// a digit, such as a1a5a8a3 
 
pattern = /(spam ){1,3}/;  
// matches 1 to 3 occurrences of the word spam followed by a space
            
             Дополнительные сведения об этом см. в разделе «
             
              Квантификаторы
             
             ».
            
            
           
            
             
            
            
             Использование групп с символом оператора перестановок (|)
            
            
             Группы можно использовать для определения групп символов, к которым требуется применить символ оператора перестановок
             
              |
             
             ), как показано ниже:
            
            var pattern:RegExp = /cat|dog/; 
// matches cat or dog 
 
pattern = /ca(t|d)og/; 
// matches catog or cadog
            
           
            
             
            
            
             Использование групп для сбора совпадений подстрок
            
            
             При определении в образце стандартной группы в круглых скобках можно позднее сослаться на нее в регулярном выражении. Такой прием известен под названием
             
              обратная ссылка
             
             , а такие виды групп известны как
             
              группы сбора
             
             . Например, в следующем регулярном выражении последовательность
             
              \1
             
             соответствует всему, чему соответствует подстрока группы в круглых скобках:
            
            var pattern:RegExp = /(\d+)-by-\1/; 
// matches the following: 48-by-48
            
             В регулярном выражении можно указать до 99 таких обратных ссылок, напечатав
             
              \1
             
             ,
             
              \2
             
             , ... ,
             
              \99
             
             .
            
            
             Аналогичным образом в методе
             
              replace()
             
             класса String можно использовать
             
              $1$99
             
             для вставки в замещающую цепочку собранных совпадений подстрок группы:
            
            var pattern:RegExp = /Hi, (\w+)\./; 
var str:String = "Hi, Bob."; 
trace(str.replace(pattern, "$1, hello.")); 
  // output: Bob, hello.
            
             Также при использовании групп сбора метод
             
              exec()
             
             класса RegExp и метод
             
              match()
             
             класса String возвращают подстроки, соответствующие группам сбора:
            
            var pattern:RegExp = /(\w+)@(\w+).(\w+)/; 
var str:String = "bob@example.com"; 
trace(pattern.exec(str)); 
  // bob@example.com,bob,example,com
            
           
            
             
            
            
             Использование групп без сбора и групп просмотра вперед
            
            
             Группой без сбора является группа, используемая только для образования групп, она не «собирает» и не совпадает с пронумерованными обратными ссылками. Используйте
             
              (?:
             
             и
             
              )
             
             для определения групп без сбора, как показано далее:
            
            var pattern = /(?:com|org|net);
            
             Например, обратите внимание на разницу между использованием
             
              (com|org)
             
             в группе сбора по сравнению с использованием в группе без сбора (метод
             
              exec()
             
             дает перечень групп сбора после полного совпадения):
            
            var pattern:RegExp = /(\w+)@(\w+).(com|org)/; 
var str:String = "bob@example.com"; 
trace(pattern.exec(str)); 
// bob@example.com,bob,example,com 
 
//noncapturing: 
var pattern:RegExp = /(\w+)@(\w+).(?:com|org)/; 
var str:String = "bob@example.com"; 
trace(pattern.exec(str)); 
  // bob@example.com,bob,example
            
             Особым типом группы без сбора является
             
              группа просмотра вперед
             
             , которая бывает двух типов:
             
              позитивная группа просмотра вперед
             
             и
             
              негативная группа просмотра вперед.
             
            
            
             Используйте
             
              (?=
             
             и
             
              )
             
             для определения позитивной группы просмотра вперед, которая задает соответствие подобразца в группе определенному положению. Однако часть строки, соответствующая позитивной группе просмотра вперед, может соответствовать оставшимся образцам в регулярном выражении. Например, поскольку в следующем коде
             
              (?=e)
             
             является позитивной группой просмотра вперед, символ
             
              e
             
             , которому она соответствует, может совпадать с последующей частью регулярного выражения, в данном случае группой сбора
             
              \w*)
             
             :
            
            var pattern:RegExp = /sh(?=e)(\w*)/i; 
var str:String = "Shelly sells seashells by the seashore"; 
trace(pattern.exec(str)); 
// Shelly,elly
            
             Используйте
             
              (?!
             
             и
             
              )
             
             для определения негативной группы просмотра вперед, которая задает
             
              отсутствие
             
             совпадения подобразца в группе определенному положению. Например:
            
            var pattern:RegExp = /sh(?!e)(\w*)/i; 
var str:String = "She sells seashells by the seashore"; 
trace(pattern.exec(str)); 
// shore,ore
            
           
            
             
            
            
             Использование именованных групп
            
            
             Именованная группа является типом группы в регулярном выражении, которой дан именованный идентификатор. Используйте
             
              (?P<name>
             
             и
             
              )
             
             для определения именованной группы. Например, в состав следующего регулярного выражения входит именованная группа с идентификатором под именем
             
              digits
             
             :
            
            var pattern = /[a-z]+(?P<digits>\d+)[a-z]+/;
            
             При использовании метода
             
              exec()
             
             добавляется совпадающая именованная группа в качестве свойства массива
             
              result
             
             :
            
            var myPattern:RegExp = /([a-z]+)(?P<digits>\d+)[a-z]+/;  
var str:String = "a123bcd"; 
var result:Array = myPattern.exec(str); 
trace(result.digits); // 123
            
             Вот другой пример, в котором используются две именованных группы с идентификаторами
             
              name
             
             и
             
              dom
             
             :
            
            var emailPattern:RegExp =  
    /(?P<name>(\w|[_.\-])+)@(?P<dom>((\w|-)+))+\.\w{2,4}+/;  
var address:String = "bob@example.com"; 
var result:Array = emailPattern.exec(address); 
trace(result.name); // bob 
trace(result.dom); // example
            
             
              Примечание.
             
             Именованные группы не являются частью спецификации языка ECMAScript. Они представляют собой добавленную в ActionScript 3.0 возможность.