} catch (MalformedPatternException e) {
Logger.error(RegEX.class, "Unable to compile pattern for regex", e);
throw new DotRuntimeException("Unable to compile pattern for regex",e);
}
List<RegExMatch> res = new ArrayList<RegExMatch>();
MatchResult result;
PatternMatcherInput input = new PatternMatcherInput(text);
while (matcher.contains(input, pattern)) {
RegExMatch rm = new RegExMatch();
result = matcher.getMatch();
if(!isUrlMap || result.beginOffset(0) == 0){
rm.setMatch(result.group(0));
rm.setBegin(result.beginOffset(0));
rm.setEnd(result.endOffset(0));
List<RegExMatch> r = new ArrayList<RegExMatch>();
for(int group = 1; group < result.groups(); group++) {
RegExMatch rm1 = new RegExMatch();
rm1.setMatch(result.group(group));
rm1.setBegin(result.begin(group));
rm1.setEnd(result.end(group));
r.add(rm1);
}
rm.setGroups(r);
res.add(rm);
}