code: public Version nextPreRelease() {
          final String[] newPreReleaseParts = incrementIdentifier(this.preReleaseParts);
          return new Version(this.major, this.minor, this.patch, newPreReleaseParts,
                  EMPTY_ARRAY);
      }
docs: Derives a new Version instance from this one by only incrementing the pre-release
  identifier. The build-meta-data will be dropped, all other fields remain the same.
  
  <p>
  The incrementation of the pre-release 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.</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="Pre-release identifier 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+build.meta.data</td>
  <td>1.2.3-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