code: private SpecTopic parseSpecTopicMetaData(final ParserData parserData, final String value, final String key,
              final int lineNumber) throws ParsingException {
          final String fixedValue = value.trim().replaceAll("(?i)^" + key + "\\s*", "");
          if (fixedValue.trim().startsWith("[") && fixedValue.trim().endsWith("]")) {
              final String topicString = key + " " + fixedValue.trim();
              return parseTopic(parserData, topicString, lineNumber);
          } else {
              if (fixedValue.trim().startsWith("[")) {
                  throw new ParsingException(format(ProcessorConstants.ERROR_NO_ENDING_BRACKET_MSG, lineNumber, ']'));
              } else if (fixedValue.trim().endsWith("]")) {
                  throw new ParsingException(format(ProcessorConstants.ERROR_NO_OPENING_BRACKET_MSG, lineNumber, '['));
              } else {
                  throw new ParsingException(format(ProcessorConstants.ERROR_NO_BRACKET_MSG, lineNumber, '[', ']'));
              }
          }
      }
docs: TODO
  
  @param parserData
  @param value
  @param key
  @return