@Override
	final protected CommandExecutionResult executeArg(SequenceDiagram system, RegexResult arg) {
		final String code = arg.get("CODE", 0);
		if (system.participants().containsKey(code)) {
			system.putParticipantInLast(code);
			return CommandExecutionResult.ok();
		}

		Display strings = null;
		if (arg.get("FULL", 0) != null) {
			strings = Display.getWithNewlines(arg.get("FULL", 0));
		}

		final String typeString1 = arg.get("TYPE", 0);
		final String typeCreate1 = arg.get("CREATE", 0);
		final ParticipantType type;
		final boolean create;
		if (typeCreate1 != null) {
			type = ParticipantType.valueOf(typeCreate1.toUpperCase());
			create = true;
		} else if (typeString1.equalsIgnoreCase("CREATE")) {
			type = ParticipantType.PARTICIPANT;
			create = true;
		} else {
			type = ParticipantType.valueOf(typeString1.toUpperCase());
			create = false;
		}
		final Participant participant = system.createNewParticipant(type, code, strings);

		final String stereotype = arg.get("STEREO", 0);

		if (stereotype != null) {
			final ISkinParam skinParam = system.getSkinParam();
			final boolean stereotypePositionTop = skinParam.stereotypePositionTop();
			final UFont font = skinParam.getFont(FontParam.CIRCLED_CHARACTER, null);
			participant.setStereotype(new Stereotype(stereotype, skinParam.getCircledCharacterRadius(), font),
					stereotypePositionTop);
		}
		participant.setSpecificBackcolor(HtmlColorUtils.getColorIfValid(arg.get("COLOR", 0)));

		final String urlString = arg.get("URL", 0);
		if (urlString != null) {
			final UrlBuilder urlBuilder = new UrlBuilder(system.getSkinParam().getValue("topurl"), ModeUrl.STRICT);
			final Url url = urlBuilder.getUrl(urlString);
			participant.setUrl(url);
		}

		if (create) {
			final String error = system.activate(participant, LifeEventType.CREATE, null);
			if (error != null) {
				return CommandExecutionResult.error(error);
			}

		}

		return CommandExecutionResult.ok();
	}