docs: @Pure
  	@SuppressWarnings("checkstyle:magicnumber")
  	public static BigInteger toBigInteger(CharSequence value) {
  		try {
  			boolean negative = false;
  			int index = 0;
  			final char firstChar = value.charAt(0);
  
  			// Handle sign, if present
  			if (firstChar == '-') {
  				negative = true;
  				++index;
  			} else if (firstChar == '+') {
  				++index;
  			}
  
  			// Handle radix specifier, if present
  			int radix = 10;
  			if (startsWith(value, "0x", index) || startsWith(value, "0X", index)) { //$NON-NLS-1$ //$NON-NLS-2$
  				index += 2;
  				radix = 16;
  			} else if (startsWith(value, "#", index)) { //$NON-NLS-1$
  				++index;
  				radix = 16;
  			} else if (startsWith(value, "0", index) && value.length() > 1 + index) { //$NON-NLS-1$
  				++index;
  				radix = 8;
  			}
  			final CharSequence endValue;
  			if (index > 0) {
  				endValue = value.subSequence(index, value.length());
  			} else {
  				endValue = value;
  			}
  			final BigInteger number = new BigInteger(endValue.toString(), radix);
  			if (negative) {
  				return number.negate();
  			}
  			return number;
  		} catch (Throwable exception) {
  			// Silent error
  		}
  		return BigInteger.valueOf(0);
  	}