### Question:
StringCharactersSpan extends SourceSpan { @Override public Optional<? extends Inline> createInline(Cursor cursor) { Matcher matcher = cursor.matcher(pattern); if (matcher.matches()) { String group = matcher.group(1); int length = cursor.getOffset(matcher.end(1)) - cursor.getOffset(); return Optional.of(new Characters(cursor.getLineAtOffset(), cursor.getOffset(), length, group)); } return Optional.absent(); }  @Override Optional<? extends Inline> createInline(Cursor cursor);  }### Answer:
@Test public void createInline() { assertNoInline(createCursor("``one")); assertNoInline(createCursor("__two")); assertNoInline(createCursor("***three")); assertNoInline(createCursor(" \nb")); assertInline(Characters.class, 0, 3, createCursor("one`")); assertInline(Characters.class, 0, 3, createCursor("one\ntwo")); assertInline(Characters.class, 0, 4, createCursor(" one *two")); assertInline(Characters.class, 0, 8, createCursor(" one two *three")); assertInline(Characters.class, 0, 8, createCursor(" one two \\[ab")); assertInline(Characters.class, 0, 8, createCursor(" one two !")); assertInline(Characters.class, 0, 8, createCursor(" one two <")); }