code: public Version nextBuildMetaData() {
          final String[] newBuildMetaData = incrementIdentifier(this.buildMetaDataParts);
          return new Version(this.major, this.minor, this.patch, this.preReleaseParts,
                  newBuildMetaData);
      }
docs: Derives a new Version instance from this one by only incrementing the
  build-meta-data identifier. All other fields remain the same.
  
  <p>
  The incrementation of the build-meta-data identifier behaves as follows:
  
  <ul>
  <li>In case the identifier is currently empty, it becomes "1" in the result.</li>
  <li>If the identifier's last part is numeric, that last part will be incremented in
  the result. <b>Leading 0's will be removed</b>.</li>
  <li>If the last part is not numeric, the identifier is interpreted as
  {@code identifier.0} which becomes {@code identifier.1} after increment.
  </ul>
  Examples:
  
  <table summary="Build meta data incrementation behavior">
  <tr>
  <th>Version</th>
  <th>After increment</th>
  </tr>
  <tr>
  <td>1.2.3</td>
  <td>1.2.3+1</td>
  </tr>
  <tr>
  <td>1.2.3-pre.release</td>
  <td>1.2.3-pre.release+1</td>
  </tr>
  <tr>
  <td>1.2.3+foo</td>
  <td>1.2.3+foo.1</td>
  </tr>
  <tr>
  <td>1.2.3+foo.1</td>
  <td>1.2.3+foo.2</td>
  </tr>
  </table>
  
  @return The incremented Version.
  @since 1.2.0