code: public Attribute parse(String buffer) {
  		log.trace("Parsing --> [" + buffer + "]");
  		
  		Matcher matcher = ATTRIBUTE_PATTERN.matcher(buffer);		
  		if (matcher.matches()) {
  			//Is a regular attribute...			
  			return parseStringAttribute(matcher);		
  		}
  		
  		matcher = BASE64_ATTRIBUTE_PATTERN.matcher(buffer);		
  		if (matcher.matches()) {
  			//Is a base64 attribute...			
  			return parseBase64Attribute(matcher);			
  		}
  		
  		matcher = URL_ATTRIBUTE_PATTERN.matcher(buffer);		
  		if (matcher.matches()) {
  			//Is a URL attribute...			
  			return parseUrlAttribute(matcher);				
  		}
  		
  		matcher = UTF8_ATTRIBUTE_PATTERN.matcher(buffer);		
  		if (matcher.matches()) {
  			//Is a UTF8 attribute...			
  			return parseUtf8Attribute(matcher);		
  		}
  		
  		//default: no match.
  		throw new InvalidAttributeFormatException("Not a valid attribute: [" + buffer + "]");		
  	}
docs: Validates attribute contained in the buffer and returns an LdapAttribute.
  <p>
  Ensures attributes meets one of four prescribed patterns for valid attributes:
  <ol>
  <li>A standard attribute pattern of the form: ATTR_ID[;options]: VALUE</li>
  <li>A Base64 attribute pattern of the form: ATTR_ID[;options]:: BASE64_VALUE</li>
  <li>A url attribute pattern of the form: ATTR_ID[;options]:&lt; URL_VALUE</li>
  <li>A UTF8 attribute pattern of the form: ATTR_ID[;options]: UTF8_VALUE</li>
  </ol>
  <p>
  Upon success an LdapAttribute object is returned.
  
  @param buffer {@inheritDoc}
  @return {@inheritDoc}
  @throws InvalidAttributeFormatException if the attribute does not meet one of the three patterns above
  or the attribute cannot be parsed.