private object RegexPattern {

    val ArticlePattern = "-?\\d+(\\.\\d+)?"

}

private val articleRegex by Delegates.lazy {

    WebViewActivity.RegexPattern.ArticlePattern.toRegex()

}

private fun setupUri() {

    if (this.uri == null) {

        val u = getIntent()
                .getStringExtra(
                        getResources()
                                .getString(R.string.default_webview_activity_uri)
                )
        //urlがnullじゃない場合
        if (u != null) {

            //もしuがnullの場合NullPointerException
            val parsedUri = Uri.parse(u)

            //ドメインがぐーぐる(teru or false)
            val isGoogle = Constants.isGoogleDomain(parsedUri)

            //ドメインがぐーぐるのの場合
            val newUri: Uri = if (isGoogle) {


                val isArticle = parsedUri.getLastPathSegment().matches(articleRegex)

                //articleの場合?
                val builder: Uri.Builder = if (isArticle) {

                    val identifier = parsedUri.getLastPathSegment().toInt()

                    User.addHistory(identifier)

                    val favored = User.containsInBookmark(identifier)

                    val flag = if (favored) {
                        1
                    } else {
                        0
                    }

                    parsedUri.buildUpon()
                            .appendQueryParameter("favored", "$flag")

質問です。

val isArticle = parsedUri.getLastPathSegment().matches(articleRegex)

の部分について、どんな処理でしょうか?

getLastPathSegment()について調べたところ、

"URIのpath部から最後のセグメントをデコードして抽出する。"

これはどうゆう意味でしょうか?

URLによってはisArticleにtureかfalse返す前にエラーで落ちてしまいますが、エラー発生条件がわかりません。デバッグではUri.javaを通過したあとにエラーになります。